我不知道我是否在问一个有效的问题,但我很好奇为什么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
的PHP
var_dump(null === 0);
// outputs boolean false
var_dump(null + 1);
// outputs int 1, why if null being not equals to zero ?
Python:
>>None == 0
>>false
由于python None是单例对象,因此添加它会导致错误
TypeError:+不支持的操作数类型:“ NoneType”和“ int”
关于其他语言如何解释
NULL
的古玩?那应该是什么?如果
Null
不等于Zero
,为什么还要对其加法,其行为类似于Zero
? 最佳答案
您可以查看每种语言的类型比较表以获得一些理解。以下是您列出的3种语言的表格:
JS
PHP
Python
然后,您应该检查null
(或None
)如何转换为其他类型。
对于PHP:(int)null
是0
(string)null
是''
(空字符串)
对于JS:null + 0
是0
,null + 1
是1
,但是parseInt(null)
是NaN
null + ''
是'null'
并且String(null)
是'null'
目前无法在Python中对其进行检查。但是您会看到为什么它在PHP和JS中表现得如此。这种差异背后的原因可能更加复杂。
关于javascript - 什么是Null?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32201132/