JS的数据类型
- number:数字
- string:字符串
- bool:布尔
- undefined
- null
- 对象
数字、字符串、布尔是原始类型。
对象是复杂类型。对象是由多个原始类型组合起来的。undefined和null是两个特殊的值。
typeof和instanceof的作用和区别?
typeof:判断数据的类型。但是不能区分对象和null,因为都会返回object
可以用instanceof来区分对象和null
instanceof:判断实例的类型。判断一个实例是否属于某种类型,所以只能判断对象和函数,不能判断字符串和数字。
判断一个变量是否是数字、字符串、布尔、函数
typeof(123);//number
typeof("asd");//string
typeof(false);//boolean
typeof(function(){});//function
NaN
- NAN是表示不是数字。通常在parseInt("asd");就会返回一个NAN。
- NAN的特殊之处是NAN!=NAN ,所以不能用==或===来判断一个值是否为NAN。用isNAN来判断。
把非数值转化为数值
- Number();//强制转换,是整体转换,而不是部分值
- parseInt();//只转换第一个无效字符之前的字符串
- parseFloat();//只转换第一个无效字符之前的字符串
==与===有的区别
- ==:在进行判断的时候,会进行类型转换。然后再进行判断
- ===:在进行判断的时候,不会进行类型转换。如果类型不一样,就为false。
break与continue
break:强制退出所有的循环。
continue:结束本次循环。
void 0 和 undefined的区别
- void 会执行后面的表达式并返回 undefined,所以void 0 等同于纯正的undefined。
- undefined是可以被赋值的,所以为了避免引用被赋值的undefined。所以可以引用void 0 。