使用空字符串、null 或 undefined 调用的号码
Number called using empty string, null, or undefined
以下调用returns值为0:
var n1 = Number() // n1 === 0 is true
var n2 = Number("") // n2 === 0 is true
var n3 = Number(null) // n3 === 0 is true
我在上面的 Google Chrome 版本 64.0.3282.119
中尝试过
但是,这种行为是否定义明确?我不确定它在其他浏览器中的行为是否相同。
当没有提供参数时,Number() 将始终 return 0,如果参数是非法的,那么 Number() 将 return NaN
对于string-to-number转换,在下一节中添加了信息:https://www.ecma-international.org/ecma-262/8.0/index.html#sec-tonumber-applied-to-the-string-type
是的,这是所有浏览器的预期行为。
传递给 Number 的构造函数的任何不可执行值都将 return 0。
var num1 = Number();
var num2 = Number("");
var num3 = Number(false);
var num4 = Number(null);
// here num1, num2, num3 and num4 will be 0 as undefined, empty string, false and null are non-executable values.
如果您将可执行 non-number 值传递给 Number 的构造函数,它将 return NaN
var num5 = Number("abc");
var num6 = Number({});
var num7 = Number([]);
// num5, num6 and num7 will be NaN as non-empty string, any object and any array are executable but Not a number values.
以下调用returns值为0:
var n1 = Number() // n1 === 0 is true
var n2 = Number("") // n2 === 0 is true
var n3 = Number(null) // n3 === 0 is true
我在上面的 Google Chrome 版本 64.0.3282.119
中尝试过但是,这种行为是否定义明确?我不确定它在其他浏览器中的行为是否相同。
当没有提供参数时,Number() 将始终 return 0,如果参数是非法的,那么 Number() 将 return NaN
对于string-to-number转换,在下一节中添加了信息:https://www.ecma-international.org/ecma-262/8.0/index.html#sec-tonumber-applied-to-the-string-type
是的,这是所有浏览器的预期行为。
传递给 Number 的构造函数的任何不可执行值都将 return 0。
var num1 = Number();
var num2 = Number("");
var num3 = Number(false);
var num4 = Number(null);
// here num1, num2, num3 and num4 will be 0 as undefined, empty string, false and null are non-executable values.
如果您将可执行 non-number 值传递给 Number 的构造函数,它将 return NaN
var num5 = Number("abc");
var num6 = Number({});
var num7 = Number([]);
// num5, num6 and num7 will be NaN as non-empty string, any object and any array are executable but Not a number values.