问题在代码中
var a = 3;
console.log( a in window ); // false,-------------为什么,
// NaN明明是Number的属性,为什么可以直接使用,也可以通过window访问
console.log(NaN); // NaN
console.log(Number.NaN); // NaN
console.log(window.NaN); // NaN
console.log(Number.hasOwnProperty(NaN)); // true
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
1, 任何一个
javascript property都有三个attribute,分别是configurable,enumerable,writable. 通过var声明的变量是不可以enumberable的,所以无法通过a in window判断出来改特性是否在window对象上。2,
NaN既是一个全局的特性也是Number对象的静态特性.故可以通过NaN和Number.NaN访问。又因为运行的环境是浏览器,全局对象是window,故也可以通过window.NaN访问参考:
Number 静态特性
全局对象