什么是1 + undefined的结果

loo*_*ing 4 javascript

1 + undefined = ?  
Run Code Online (Sandbox Code Playgroud)
  1. 首先,String(undefined)获取字符串"undefined"
  2. 第二,1 +"undefined"="1undefined"

怎么了?

我在chrome控制台中运行它,它返回NaN.

你能解释一下结果吗?

我认为它应该是"1 undefined".TKS

Hal*_*yon 11

NaN是Number操作失败的结果.

1 + undefined           // NaN
"1" + undefined         // "1undefined"
1 + "" + undefined      // "1undefined"
1 + ("" + undefined)    // "1undefined"
typeof NaN              // "number"
typeof undefined        // "undefined"
NaN === NaN             // false (it's not reflexive!)
undefined === undefined // true (it's reflexive)
NaN.toString()          // "NaN"
Run Code Online (Sandbox Code Playgroud)

NaN表示不是预期数字的数字.任何数字操作NaN都将导致NaN.

  • 它不是NAN,它是NaN(注意_a_上的情况,JavaScript区分大小写).undefined不会_converted_到任何东西.你用操作数`1`(Number)和`undefined`执行`+`操作.`Number + undefined`的结果是**不是数字**或'NaN`.`NaN`是一种特殊的`Number`,就像`Infinity`,它有一些非常特殊的属性. (2认同)
  • @looping:你问为什么?因为规范是这样说的:http://es5.github.com/#x9.3.您可能会也可能不会同意此决定. (2认同)