JavaScript概述:JavaScript是一门web相关的脚本语言,需要浏览器(解析器)的支持,是一个弱语言(值什么类型变量就是什么类型)。
JavaScript的构成:
BOM(浏览器对象模型、操作浏览器)
DOM(文档对象模型、操作html文档)
ECMAScript(语法规范、es3:兼容各大主流浏览器、es5:兼容普通高版本浏览器、es6:兼容相关的高版本浏览器)
JavaScript的代码执行顺序:从上到下按照对应的文档流
变量的定义:采用var关键词来修饰的(默认以var关键词修饰,变量提升,伪全局变量)
变量命名的注意事项:
1.语义化命名 见名知意(有道)
2.不能使用关键词和保留字
3.使用驼峰命名法(第一个首字母小写以后的首字母大写)
4.不能以数字开头(构成可以由数字字母下划线以及$符号)
JavaScript的数据类型:
1.基础数据类型(值类型 不能变的(常量))
数值类型 number
字符串类型 string (单引号和双引号表示的都是字符串)
布尔类型 boolean (true 真 false 假
未定义类型 undefined(当前没有给值)undefined是null的派生
空类型 null 只有在null值的情况下才为null类型
2.引用数据类型(对象地址分配的 可以变的)(object array function ...)
JavaScript的注释:注释是用于标识当前的代码片段的意义 ,方便之后的开发者进行维护(不会被编译)
1、单行注释 (注释一行)://这是一个单行注释
2、多行注释 (注释多行 ) :/** 这是一个多行注释 */
typeof用于判断对应的数据类型(也叫检索对应的数据类型),返回的是对应数据类型的英文名(也是一个字符串)
注意:
typeof null 返回的是一个object的字符串其他返回的是对应的类型的字符串
function 返回的是function object返回的是object array返回的也是一个object
typeof的typeof是string
null返回的是object null是一个空对象引用
数据类型转换:(string>number>boolean>undefined)
显式转换:数据类型大的转小的
隐式转换:数据类型小的转大的
任意类型转字符串(toString方法调用, String方法调用)
注意事项:undefined不能使用toString方法
任意类型转number类型(number方法转换,parseInt方法或者parseFloat方法(截取))
注意事项:
任意类型转number类型无法转换会出现NaN ,NaN属于数值类型
null转number结果为0,undefined转number结果为NaN
isNaN专门判断当前是否是NaN类型 ,出现NaN返回true,没有返回false
console.log(isNaN(NaN));//ture
number的特殊值:NaN(当你需要转为number类型的时候转换不成功出现的值)
任意类型转boolean 转换为boolean类型(Boolean方法)
非空则为true,非0和非NaN则为true
undefined和null转换为boolean都是false
注意事项:
1、string类型转boolean类型非空就是true,空字符串为false
2、number类型转boolean类型,非0和非NaN就是true,0和NaN为false
3、undefined和null转换boolean类型都是false
无穷大和无穷小(Infinity):
varnumber1=+Infinity//无穷大
varnumber2=-Infinity//无穷小
console.log(typeofnumber1)
运算符及表达式:
算术运算符:+ - * / % ++ --
大数取小数得到的是余数 小的数取大的数得到的是本身(小的数)
+法运算 如果对应的有一个值的类型是字符串 那么得到就是字符串类型 (字符串进行拼接)
除此之外的所有都是会转为对应的数值然后进行运算 默认的转换用到的是number方法
NaN进行任何数值运算得到的数值都是NaN
++自增和--自减
++或--前置和后置的区别
前置先执行:先执行++或--操作,再执行其他的代码
后置后执行:先执行对应的其他代码,再执行++或--操作
注意事项:
取余的规则:大的数值取余小的数值得到是余数,小的数值取余大的数值得到的是它本身(小的数值)
字符串进行加法运算会进行字符串的拼接,得到的是字符串
其他的任意操作都会先转为对应的number类型再进行运算
NaN做任意运算返回的结果都是NaN
逻辑运算符:&& || !
注意事项:
&& (与) :俩个都是true,则返回true(最后一个true) ,有一个是false就返回false (第一个false)
|| (或): 有个true直接取第一个true,如果都是false取最后一个false
! (非): 取反操作,将对应的真的变假的,假的变真的,返回的结果是一个boolean类型
条件运算符:> < = >= <= == === != !==
返回的是一个boolean类型的值 (true或者false)
字符串和对应的数值比较 比较的过程会进行数值类型的转换 NaN 出现NaN结果就是false
== 判断俩个值是否相等 进行转换操作,字符串的数值和普通数值进行比较 是返回true
=== 恒等 全等俩个类型以及值完全相等 基于==
注意事项:
undefined==null为true,undefined===null 为false
字符串和字符串相比较那么对应的比较的ascii码(先比首字母 大写字母比小写字母要小 排在前面比后面的要小)
在对应的非数值的比较上会自动转为数进行比较
NaN==NaN为false 在正常比较中没有取反符号的情况下出现NaN就是false
恒等是基于==之上的 ==为false对应的恒等必定为false(==只比较值 ===要比类型)
赋值运算符:= += -= *= /= %=
位移运算符:<< >>
位移运算是将对应的数值转为二进制进行移位运算(将一个数值转为二进制使用除二取余法)
// 怎么快速把2变成8 后面补零
console.log(2<<2);
扩展(进制转换):
常用的进制分为 2进制 4进制 8进制 16进制(颜色设置 最的值为f)
将对应的10进制转为其他进制得到的是字符串 toString
var number = 8
console.log(number.toString(2))
将其他进制转为10进制得到就是数值 parseInt
var str = '1f' //16进制的字符串
console.log(parseInt(str,16))//将16进制转为10进制
JavaScript的书写位置:
1、内联:写在script标签里面(可以放在任何地方,建议放在html后面)
2、外联:通过script标签的src引入
3、内嵌:写在元素里面