我想知道JavaScript null和undefinedJavaScript 之间的区别.
为什么被null认为是objectJavaScript?
正在检查
if ( object == null )
Do something
Run Code Online (Sandbox Code Playgroud)
同样的
if ( !object )
Do something
Run Code Online (Sandbox Code Playgroud)
?
并且:
null和之间有什么区别undefined?
我NULL在PHP中有一个问题:
$a = '';
if($a == NULL) {
echo 'is null';
}
Run Code Online (Sandbox Code Playgroud)
当为空字符串时,为什么我看到为null$a?那是一个错误吗?
取自MDN
字符串文字(用双引号或单引号表示)和从非构造函数上下文中的String调用返回的字符串(即,不使用new关键字)是原始字符串.JavaScript会自动将基元转换为String对象,因此可以对原始字符串使用String对象方法.在要在原始字符串上调用方法或发生属性查找的上下文中,JavaScript将自动包装字符串原语并调用方法或执行属性查找.
因此,我认为(逻辑上)字符串基元上的操作(方法调用)应该比字符串对象上的操作慢,因为任何字符串基元method在应用于字符串之前都会转换为字符串对象(额外工作).
但在这个测试案例中,结果却相反.所述码块1的运行速度比较快的块-2代码,两个代码块在下面给出:
代码块-1:
var s = '0123456789';
for (var i = 0; i < s.length; i++) {
s.charAt(i);
}
Run Code Online (Sandbox Code Playgroud)
代码块-2:
var s = new String('0123456789');
for (var i = 0; i < s.length; i++) {
s.charAt(i);
}
Run Code Online (Sandbox Code Playgroud)
结果在浏览器中有所不同,但代码块-1总是更快.任何人都可以解释一下,为什么代码块-1比代码块-2快.