You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何eval('let = new Array')可正常运行?预期报错却未报错

问题解答
  • 核心原因是浏览器版本对ES6关键字let的处理差异:

    • 在ES6(ECMAScript 2015)正式规范中,let被定为声明变量的关键字,不能作为普通变量名使用,因此let = new Array属于语法错误,现代主流浏览器(Chrome 49+、Firefox 44+)执行这段代码都会抛出SyntaxError。
    • 如果你使用的是较旧版本的Chrome/Firefox(比如Chrome 48及以前、Firefox 43及以前),当时let还处于实验性支持阶段,并未被完全列为保留关键字,此时let可以被当作普通变量名使用,let = new Array会被解析为给变量let赋值,因此不会报错,能正常运行。
  • 另外需要确认是否存在输入错误:比如你实际运行的代码是let arr = new Array()(带变量名的合法声明),而非let = new Array,这种情况下代码本身合法自然不会报错。

内容的提问来源于stack exchange,提问作者i am super noob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 16:39:20