清除有关变量的Javascript基础知识

时间:2017-12-05 07:51:28

标签: javascript

console.log(x);
x = 20;

控制台上返回的值未定义。 我期待值为20或参考错误。 为什么会这样?

4 个答案:

答案 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.xundefined 。执行x=20后,您将在x显示后设置值。

答案 3 :(得分:0)

嗯,这是一个老技巧,首先打印一个变量,然后设置它的值。 要解决这个问题,首先应该设置x,然后设置console.log:

x=20;
console.log(x);

你问题的结果是:

  1. 最初: x的值未定义
  2. 日志:

    CONSOLE.LOG(X); //这将打印一个空行,因为x尚未定义

  3. 将变量x设置为20:

    X = 20; //设置了x,但没有使用。