Aad*_*rma 5 javascript numbers
让我们看下面的例子:
Q1:为什么0这里输出?这是什么意思?
var a = 7;
console.log(a.constructor()); // prints 0 (Why?)Run Code Online (Sandbox Code Playgroud)
问题2:何时typeof a和typeof 7两者都是数字,为什么a.constructor()运行而7.constructor()没有?
var a = 7;
var bool = typeof a === typeof 7;
console.log(a.constructor()); // 0
console.log((++a).constructor()); // 0
console.log(7.constructor()); // SyntaxError: Invalid or unexpected token
console.log(++a.constructor()); // ReferenceError: Invalid left-hand side expression in prefix operationRun Code Online (Sandbox Code Playgroud)
Q1:为什么这里输出0?这是什么意思?
a.constructor是Number并且您用第一个参数调用它undefined。因为Number()回报undefined所以x.constructor()回报undefined。如果没有参数传递给Number()它返回0
var a = 5;
console.log(a.constructor === Number)
console.log(Number())Run Code Online (Sandbox Code Playgroud)
当 typeof a 和 typeof 7 都是数字时,为什么 a.constructor() 运行而 7.constructor() 不运行?
其实7.本身就是一个数字。这里.不使用点表示法,而是使用小数点,因为小数点后面的数字是可选的。
可以有不同的方式来直接访问号码的方法。
console.log(5..constructor)
console.log((5).constructor)
console.log(5 .constructor)Run Code Online (Sandbox Code Playgroud)