1.数据基本类型有 Null,Boolean,String,Number,Object,Undefined
typeof 可以测试出来的数据类型有 boolean , string , number , object, undefined , function
下面举一些特例
typeof null;//object;
typeof NaN;//number
typeof undefined;//undefined
typeof [];//object
2.包装对象
类型已经变为object
var n = new Number(123);
typeof n;//object
n === 123;//false
如果没有写new,此时,Number()、Boolean和String()被当做普通函数,把任何类型的数据转换为number、boolean和string类型,
3.总结一下,有这么几条规则需要遵守:
不要使用new Number()、new Boolean()、new String()创建包装对象;
用parseInt()或parseFloat()来转换任意类型到number;
用String()来转换任意类型到string,或者直接调用某个对象的toString()方法(null和undefined木有此方法);
通常不必把任意类型转换为boolean再判断,因为可以直接写if (myVar) {...};
typeof操作符可以判断出number、boolean、string、function和undefined;
判断Array要使用Array.isArray(arr),或者使用arr instanceof Array来判断;
判断null请使用myVar === null;
判断某个全局变量是否存在用typeof window.myVar === 'undefined';
函数内部判断某个变量是否存在用typeof myVar === 'undefined'。
4.判断两个数是否相等
null == undefined //true
null === undefined ;//false
NaN === NaN;//false
NaN == undefined;//false
[] == false;//true
[0] == false;//true
if([]){ .........1..........}else{.......2.........};//执行代码1
if([0]){ .........1..........}else{.......2.........};//执行代码1
5.其他操作
123.toString();//报错
123..toString();//'123'
解释:JS会把整数123后面的第一个点当成小数点去解析,因为在JS里是允许小数点前后有一方木有值;
1 + '1' == 11;//true
2 - '1' == 1//true
解释:任何数值跟字符串相加都将转换成字符串拼接
网友评论