Mat*_*ler 3 javascript variables primitive boolean-logic
一个非常简单的问题,是否有一种情况,在javascript中使用原始数据类型是优选的,我特别困扰原始布尔值,请考虑以下代码
var bool = new Boolean(false);
if (bool){
alert(bool);
}
Run Code Online (Sandbox Code Playgroud)
它会,alert
但你会得到false
,这有点令人困惑(false
!= falsy).
那么使用原始数据类型尤其是原始布尔值是否有意义?
这些不是原始的.元是像100
,"foobar"
,false
:
> typeof false
"boolean"
> typeof new Boolean(false)
"object"
Run Code Online (Sandbox Code Playgroud)
new Boolean
(或Number
或String
)是一个对象,并遵循对象,而不是原语规则作比较,布尔转换等.这些对象确实是一个JS程序员难以有用(相对于使用它们内部一个JS引擎).
请注意,尽管很少需要使用Boolean
和朋友来构造对象(如x = new Boolean(...)
),但这些函数本身有时很有用.例如,以下好习惯用法从数组中删除所有有价值的值:
ary = ary.filter(Boolean)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
116 次 |
最近记录: |