控制台打印length返回1未报错,此默认值是否存在相关关联?
为什么控制台打印
length会返回1而不是报错? 你遇到的情况是因为在浏览器控制台的全局作用域中,直接输入的length其实是全局对象window的原生属性window.length的简写,这个属性的作用是统计当前窗口中包含的框架(frames/iframes)的数量。
正常情况下,如果页面没有嵌入任何iframe,window.length会返回0,但你这里得到1,大概率是当前页面存在隐藏的框架——可能是浏览器扩展注入的,或者页面本身包含了你没注意到的内嵌框架,也有可能是控制台运行时的特殊上下文导致这个值被设为1。
至于为什么不会抛出"length is not defined"的错误:因为window.length是浏览器内置的全局属性,本身就存在,所以直接访问时不会触发未定义错误。但如果是在函数内部等非全局作用域里直接用length,因为找不到这个变量,才会报错。
示例代码:
> console.log(length) Output: 1
内容的提问来源于stack exchange,提问作者Lokendra Verma
相关产品推荐
相关产品推荐

