JavaScript有几条规则需要遵守:
- 不要使用
new Number()、new Boolean()、new String()创建包装对象;
- 用
parseInt()或parseFloat()来转换任意类型到number; - 用
String()来转换任意类型到string,或者直接调用某个对象的toString()方法; - 通常不必把任意类型转换为
boolean再判断,因为可以直接写if (myVar) {...}; typeof操作符可以判断出number、boolean、string、function和undefined;- 判断
Array要使用Array.isArray(arr); - 判断
null请使用myVar === null; - 判断某个全局变量是否存在用
typeof window.myVar === 'undefined'; - 函数内部判断某个变量是否存在用
typeof myVar === 'undefined'。
常见问题
任何对象都有
toString()方法吗?null和undefined就没有!确实如此,这两个特殊值要除外,虽然null还伪装成了object类型。如果我们在使用Number、Boolean和String时,没有写new会发生什么情况?
此时,
Number()、Boolean和String()被当做普通函数,把任何类型的数据转换为number、boolean和string类型(注意不是其包装类型)。