Javascript 什么实际上是空的?
我不知道我问的问题是否正确,但我很好奇为什么PHP、JavaScript和Python对Javascript 什么实际上是空的?,javascript,php,python,types,null,Javascript,Php,Python,Types,Null,我不知道我问的问题是否正确,但我很好奇为什么PHP、JavaScript和Python对null的解释不同 Javascript: console.log(null === 0); // Outputs false console.log(null + 1); //Outputs 1 , why ? if null isn't equal to zero >>None == 0 >>false PHP var_dump(null === 0); // outputs
null
的解释不同
Javascript:
console.log(null === 0); // Outputs false
console.log(null + 1); //Outputs 1 , why ? if null isn't equal to zero
>>None == 0
>>false
PHP
var_dump(null === 0);
// outputs boolean false
var_dump(null + 1);
// outputs int 1, why if null being not equals to zero ?
Python:
console.log(null === 0); // Outputs false
console.log(null + 1); //Outputs 1 , why ? if null isn't equal to zero
>>None == 0
>>false
由于python None是单例对象,因此添加到它会导致错误
TypeError:不支持+:“NoneType”和“int”的操作数类型
关于其他语言如何解释NULL
?它应该是什么?
如果
Null
不等于Zero
,为什么要对其进行加法,它的行为类似于Zero
?您可以查看每种语言的类型比较表来获得一些理解。以下是您列出的3种语言的表格:
null
(或None
)如何强制转换为其他类型
对于PHP:
为(int)null
0
为(字符串)null
(空字符串)”
是null+0
,0
是null+1
,但是1
是parseInt(null)
NaN
是null+'
和'null'
是String(null)
'null'
现在无法检查Python。但是您可以看到为什么它在PHP和JS中的行为是这样的。这种差异背后的原因可能更复杂。要在Javascript中比较
null
,请使用==
,null===0
可能重复@Tushar right,但结果相同!语言设计和不同的排版规则。将多个语言的空实现和行为进行比较是没有多大意义的。如果一个变量没有值,它是空的,并且指向内存中的某个地方。好吧,哥们,我想知道我们真正认为什么是空的?@ N01ZE,那么你可能需要解释什么“我们真的认为NULL是什么?”事实上means@jonrsharpe是的,你完全正确,我同意你的看法