alert(x); //"x" is not defined
alert(b); //"undefined
x = 10;
var y = 20;
x是否成为了window的一个属性而非变量?
y是变量对象吗?
因为我看到了这么一段话
在《Javascript高级程序设计》4.2.2一节当中有这么一句话:“如果初始化变量时没有使用var声明,该变量会自动被添加到全局环境中。”
首先,我们应该先明确一点,使用var关键字是声明变量的唯一方式。如果没有var 的话,例如 a = 5 ,a就将作为全局对象的一个属性,而不是一个变量。区别如下:
alert(x); //"x" is not defined alert(b); //"undefined x = 10; var y = 20;进入上下文后第一阶段:
VO = { x:10; }VO 中并没有y的原因是,y 并不是变量。
请问他说的对吗?
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
直接在下面输出一下有没有不就得了。。。这时候的window是上下文执行环境吧?
在浏览器中,定义在全局作用域中的都是window的属性。在这里x与y既是变量,同时又是window的属性,window.x与window.y都能访问到
含义:
变量声明是必须通过 var 语句来完成的,未通过var 语句声明的全局变量是window对象的属性。
区别:
delete操作符是用来删除对象属性的。
通过var声明的变量和通过function声明的函数拥有DontDelete特性,是不能被删除。
未通过var声明的全局变量(全局对象的属性)可以被删除