一 基础知识
1.数据类型
-
基本数据类型
number string boolean undefined
-
引用数据类型
Object Function symbol
-
检测数据类型的方法
typeof 只能检查到object(该数值是什么类型) instanceof 检查返回的是一个布尔值 Object.prototype.toString.call(a) -
数据类型转换
隐式数据类型转换
算术运算符 - / * %
关系运算符 < > = != >= <= ===全等于 !==全不等于
单目运算符 ++ --
强制数据类型转换
+ 不能产生隐式类型的转换 - * / % ++ -- 隐式类型转换 关系运算符 隐式类型的转换 强制类型转换:(强制将某个类型转成另一个类型,如果不能正常转换,结果就是:NaN) Number(); 转成数值型(注意:首字母要大写) Number("aaa") //NaN Number("11111a") //NaN Number("11") //11 Number(true) //1 Number(false) //0 parseInt();将字符串转成整型(注:字母在数字前面的不可以转) parseInt("13.33333") //13 parseInt('12.33aaaaaa') //12 parseInt('12aaaaaa') //12 parseInt("ab12.344") //NaN parseFloat();将字符串转成浮点型 parseFloat("12.34abcd3456") //12.34 parseFloat("12ab12.34") //12 String() isNaN();判断非数字 如果参数是非数字,结果为true 否则是:false isNaN("12") //false isNaN(12) //false isNaN("12ab") //ture isNaN("ab") //ture isNaN() //判断是否为NaN; 如果是NaN 返回的则是true; 执行逻辑:首先用Number() 转换,如果为NaN 返回的则是true; isNaN() 相当于 window.isNaN(); 注: 1.js哪些值能转成flase undefined "" 0 false null 2.js哪些值能转成ture 非0数字 非空的字符串 ture object function 字符串比较大小时,要转成ascll码,进行比较. -
运算符
逻辑运算符的短路问题: 如果&& 遇到false 后面的表达式不再执行 如果|| 遇到true 后面的表达式不再执行