js作用域链和函数表达式的深入讨论

l676331991 l676331991 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

var test="wrong"
Object.prototype.test="right";

var score=0;

void function f0(){
if(test=="right")score++;
}()

void function(){
if(test=="wrong")score++;
}()

var e="right";
try{
throw new Error;
} catch(e) {
e="wrong";
if(test=="right")score++;
}
if(e=="right")score++;

var f;
void function f(){
}
if(typeof f=="undefined")score++;


var err;
function a(){
var m="right";
var n;
return function(){
var err;
return arguments[0].call(this,arguments[1]);
}
}
try{
var b=a();
if(b(eval,"m")=="right")score++;
} catch(err) {
}


alert(score+"/6")


偶得这样一段代码,出处称符合ES3标准的应该结果是6/6。
与大家共同讨论一下,涉及到js作用域链的深入理解。

//另,发帖时添加自定义标签敲回车为毛是提交表单~~误发两次了
...全文

相关推荐

评论 16
收藏 已收藏
分享
返回顶部
l676331991
JavaScript 87,984 成员 224,681 内容