gpt4 book ai didi

javascript - 为什么变量初始化和为现有变量赋值在 Javascript 控制台中会产生不同的结果?

转载 作者:行者123 更新时间:2023-11-28 13:03:56 25 4
gpt4 key购买 nike

因此,在 Chrome JS 控制台中进行实验时,我发现了一些令人费解的事情。

当我在控制台中运行以下内容时,控制台打印undefined

var i = 10;

但是,当我运行此命令时,它会打印 10:

j = 10

这是我的控制台中结果的屏幕截图。

Sample

有人可以向我解释为什么会有这种行为差异吗?

最佳答案

这是语句和表达式之间的根本区别。表达式计算结果,而语句则不然。

var j = 10; 是一条语句(特别是 variable statement),因此它不会计算任何内容,只能在语句上下文中使用。

j = 10 是一个表达式,因此它的计算结果为一个值,并且可以包含在任何需要值的地方(例如。if ( j = 10 )console.log( j = 10 ))。任何表达式也可以在语句上下文中单独使用,因为有一种称为 expression statement 的语句类型。 .

在 REPL(读取、求值、打印、循环)中,例如 Chrome 的控制台,表达式语句的结果在求值后立即打印,其他语句(例如变量语句)不会求值任何内容,因此REPL 无法打印任何内容,或者在 Chrome 的情况下,打印 undefined

关于javascript - 为什么变量初始化和为现有变量赋值在 Javascript 控制台中会产生不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48088931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com