Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

保留字也可以作为变量名?

  我们通常认为保留字不能作为变量名,但在Chrome中只要使用Unicode转义来描述的保留字就可以被作为变量名,这算是一个BUG吧?但好在这个影响并不大,这个漏洞目前也没想到什么可以应用的场景。对于使用Unicode转义来描述代码的其它性质还是比较规范的。
<script>
var \u0069\u0066="我是名为if的变量的值";
console.log(window.if);
</script>

  我觉得这是个BUG!但好在这并不影响一些严格模式下关键字验证,比如
(function(\u0065\u0076\u0061\u006C){"use strict";})();   在Chrome上也会抛出异常
SyntaxError: Parameter name eval or arguments is not allowed in strict mode   这个代码依然可以判断出eval不能作为严格模式的变量名。

  测试于:
    Chrome 31.0.1650.63 m
    Firefox 26.0
    IE 11.0.9600.16476
网名:
3.80.55.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^