tal*_*les 16 javascript null nan undefined zero
被null评价为0和undefined以NaN算术表达式?
根据一些测试,似乎如此:
> null + null
0
> 4 + null
4
> undefined + undefined
NaN
> 4 + undefined
NaN
Run Code Online (Sandbox Code Playgroud)
假设这个是安全的还是正确的?(文件中的引用是A +).
Ber*_*rgi 12
在算术表达式上,null被评估为0并且未定义为NaN吗?假设这个是安全的还是正确的?
是的."算术表达式"将使用该ToNumber操作:
Argument Type | Result
--------------+--------
Undefined | NaN
Null | +0
… |
Run Code Online (Sandbox Code Playgroud)
它用于以下"算术"表达式:
它不是由相等运算符使用,所以null == 0是假的(null !== 0无论如何)!
似乎是安全,因为这样的假设,在一个算术表达式(例如 另外),该方法ToNumber将调用它,评估NaN和+0从undefined和null分别为:
To Number Conversions
??????????????????????????????????????????????????????????????
? Argument Type ? Result ?
??????????????????????????????????????????????????????????????
? Undefined ? NaN ?
? ? ?
? Null ? +0 ?
? ? ?
? Boolean ? The result is 1 if the argument is true. ?
? ? The result is +0 if the argument is false. ?
? ? ?
? Number ? The result equals the input argument (no ?
? ? conversion). ?
? ? ?
? String ? See grammar and note below. ?
? ? ?
? Object ? Apply the following steps: ?
? ? 1. Let primValue be ToPrimitive(input ?
? ? argument, hint Number). ?
? ? 2. Return ToNumber(primValue). ?
??????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
不受类型限制,
null == false == 0
null !== false !== 0
Run Code Online (Sandbox Code Playgroud)
http://www.mapbender.org/JavaScript_pitfalls:_null,_false,_undefined,_NaN#0_6
照这样说,null == 0,null + 4 = 4
我希望这有帮助。
| 归档时间: |
|
| 查看次数: |
8450 次 |
| 最近记录: |