JavaScript的“返回”真的是一个*关键字*吗?
is javascript's `return` really a *keyword*?
这个snip将在nodejs和浏览器上运行而不会有任何抱怨:
this.return = function ( x ) {
return x
};
console.log ( this.return(1) );
我预计它会因语法错误而失败。
我的意思是,我能理解为什么this['return']
有效......但我总是认为return
词法分析器关键字?
JavaScript 是一种上下文相关的语言吗?
补充:关键是词法分析器没有T_RETURN令牌,但它使用一些T_STRING。不是?
> return
是一个保留关键字,但保留关键字可以毫无问题地用作属性访问器,这样做通常是不好的做法。
保留关键字不能专门用作变量、函数、方法或数组和对象的标识符的名称,因为 ECMAScript 为它们指定了特殊行为:
来自 ECMAScript 脚本的源文本从左到右扫描,并转换为一系列输入元素,这些元素是标记、控制字符、行终止符、注释或空格。
ECMAScript 还定义了某些关键字和文字,并具有自动将分号插入到结束语句的规则。
保留字实际上仅适用于标识符(相对于标识符名称)。
如 ES5 中所述,这些都是不排除保留字的标识符名称。
a.return
a["return"]
a = { return: "test" }.
然而,这些不是
function return() {}
var return;
更多关于 MDN 的信息
是的,return 是一个关键字。您已经定义了一个属性,并且实质上使用了一个名为 return 的字符串。如果您实际使用退货,则会导致错误
var return = "error";//Uncaught SyntaxError: Unexpected token return
相关文章:
- 学习Javascript,但停留在一个简单的返回关键字上
- Javascript 此关键字引用另一个对象
- JavaScript的“返回”真的是一个*关键字*吗?
- Javascript:在“this”关键字之前有一个“var”关键字
- javascript初始化一个没有new关键字的对象
- I'm在一些函数周围传递一个元素;这个“;关键字和“;呼叫“;方法
- '值'关键字实际上在JavaScript中工作,我们可以同时获得一个值并分配它吗
- 制作一个没有新关键字的javascript淘汰视图模型
- indexeddb部分关键字搜索获取下一个
- 如何在网页中实现一个可以突出显示LaTeX和AMS关键字的编辑器
- 如何给一个对象's与javascript中的new关键字的属性和方法
- JavaScript - package 是一个保留关键字
- Javascript this关键字和变量指向一个对象方法
- 这个关键字不传递给jquery ajax中的另一个函数
- 添加(this)关键字以挑选出一个元素
- 是否有一个相反的关键字这个
- 使用Javascript正则表达式获取谷歌搜索的最后一个关键字
- 在嵌套的observableArray中按一个关键字过滤用户
- 如何更改一个关键字'Geany的颜色
- 用占位符替换两个关键字的正则表达式,其中1可以是另一个关键字的一部分