console.log(x);
x = 20;
控制台上返回的值未定义。 我期待值为20或参考错误。 为什么会这样?
答案 0 :(得分:2)
您的代码返回错误 - Uncaught ReferenceError: x is not defined
而不是undefined
。
因此,请将x = 20;
视为var x = 20;
,在控制台中打印undefined
。
在JavaScript
中,如果在使用变量之前未声明变量,则声明首先使用默认值undefined
。然后发生该变量的初始化。
使用var
:
console.log(x);
var x = 20;
实际上由JavaScript
引擎解释为:
var x;
x = undefined;
console.log(x);
x = 20;
答案 1 :(得分:1)
它的作用是
是否使用变量/函数将其置于顶部,将变量赋值为undefined
所以x= undefined;
位于顶部,您在第二行得到undefined
的结果,然后您最后更改了x=20
。
console.log(x);
x=20;
答案 2 :(得分:0)
因为当您执行console.log(x);
时,它指的是全局范围(window.x
),而x
在全局范围内的值window.x
是undefined
。执行x=20
后,您将在x
显示后设置值。
答案 3 :(得分:0)
嗯,这是一个老技巧,首先打印一个变量,然后设置它的值。 要解决这个问题,首先应该设置x,然后设置console.log:
x=20;
console.log(x);
你问题的结果是:
日志:
CONSOLE.LOG(X); //这将打印一个空行,因为x尚未定义
将变量x设置为20:
X = 20; //设置了x,但没有使用。