我遇到了类似这样的代码:
const foo = 1
var foo = foo
foo = 2
foo
的价值是多少?它会改变,忽略还是抛出错误?在Node终端中,它忽略了第二行,即var foo
。
答案 0 :(得分:2)
您将收到语法错误:
Uncaught SyntaxError:Identifier' foo'已经宣布
答案 1 :(得分:2)
实际上,const
和var
用于变量声明。
一些信息
通过使用var保留字声明变量:
var x;
完整的声明将是:
var x = 24;
在函数体内,需要关键字var来为此函数创建变量区域设置。 它不是全局空间所必需的,也不是函数的参数。 如果变量没有指定值,则其内容未定义
var y;
if(y == undefined)
{
y = 0;
}
ES2015,最新版本的javascript有 const 的概念。
使用const保留字(而不是var)声明常量,并在声明时分配,然后在以后修改它们当然是不可能的。
const x = 24;
const
表示不会重新分配标识符。
let
,是可以重新分配变量的信号,例如循环中的计数器或算法中的值交换。它还表示该变量仅在其定义的块中使用,并不总是包含整个函数。
var
现在是您在JavaScript中定义变量时可用的最弱信号。变量可以重新分配,也可以不重新赋值,变量可以用于也可以不用于整个函数,或仅用于块或循环。
很抱歉详细信息。
回到原来的问题: 如果我们尝试在开发者控制台中执行语句(按键盘上的F12键),这将是好的和容易的
语法错误:const foo的重新声明
希望这有帮助。