为什么 const 在开关大小写语句中是非法的
Why is const illegal in a switch case statement?
为什么在交换机内的机箱块中不允许使用常量?
这将生成一个 JS 错误:
(function () {
"use strict";
const foo = "bar";
switch (foo) {
case "bar":
const bar = "foo"; // error
console.log("bar is", bar);
break;
default:
console.log("nope");
break;
}
}());
但这有效:
(function () {
"use strict";
const foo = "bar";
switch (foo) {
case "bar":
var bar = "foo"; // error
console.log("bar is", bar);
break;
default:
console.log("nope");
break;
}
}());
我一直在浏览 ECMASCript 规范,它并没有跳出来为什么不允许这样做。 const
允许在LexicalEnvironment
中。案例块是一种特殊的 JavaScript 块吗?还是这是一个错误?
编辑:
这是Chrome 42中的一个错误。更新到Chrome 43修复了它。
常
量的值不能通过重新赋值来更改,并且常量不能重新声明。
您可以从 MDN 查看有关 const 的更多详细信息:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 自动修复”;语句前缺少分号“;
- 如何在 API 调用后和 if 语句中启用提交按钮
- 是“;x==a||b”;以及“;x==a||x==b”;JavaScript中的等效语句
- 带有多个elseif的Javascript if语句
- 这个条件语句的逻辑有问题
- Sharepoint JScript if语句未执行
- 为什么继续;语句冻结浏览器
- 检查浏览器支持时出现非法返回语句
- 非法返回语句错误
- 未捕获的语法错误:非法返回语句
- 非法的break语句(Node.js)
- SyntaxError:非法的返回语句-正在url中搜索字符串
- 语法错误:JavaScript中的非法返回语句
- javascript $中非法的continue语句.每一个循环
- jquery Uncaught SyntaxError:非法的break语句
- 为什么 const 在开关大小写语句中是非法的
- JavaScript非法break语句
- Javascript是如何解释这个非法语句的?