每天25分钟总结(3)

1、默认转布尔值为false的类型

undefined
null
0
-0
NaN
""

2、当null和undefined相互==为true(同样表示为空值)

3、默认隐式包装对象,要显式包装的话要new

var a = "test",b = 1,c = true
var A = new String(a)
var B = new Number(b)
var C = new Boolean(C)

4、字符串所有的方法看上去返回了一个修改后的字符串,实际上返回的是一个新的字符串值
5、各个索引元素完全相等的两个数组也不相等

var a = {x:1},p = {x:1}
o===p    // false 两个单独的对象永不相等
var a = [],p = []
o===p    // false 两个单独的数组永不相等

6、相等两个对象是因为其引用是相等的

7、当不使用new为运算符调用以下函数时,它们会作为类型转换函数

Number("3")    // 3
String(false)    // "false"
Boolean([])    // true
Object(3)    //new Number(3)
以上不常用,常用的是一些简便写法
x+""  // 等价于String(x)
+x  // 等价于Number(x)
!!x  // 等价于Boolean(x)

8、包装对象new Boolean(false)是一个对象而不是原始值,它将转换为true

原文地址:https://www.cnblogs.com/huangqiming/p/12322958.html