js作用域链和函数表达式的深入讨论
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作用域链的深入理解。
//另,发帖时添加自定义标签敲回车为毛是提交表单~~误发两次了
...全文
相关推荐
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
首先,我们来看JavaScript中定义函数的两种方式:函数声明和函数表达式。
You Don't Know JS(中英全6本,带目录)
**《Functions & The Function Constructor》**:函数是JavaScript的核心,本书深入讨论了函数的各个方面,包括函数表达式、函数对象、箭头函数、函数参数等。
js-study:香草JS自学
**函数与作用域**:了解函数的定义、调用,参数传递,以及函数表达式。理解作用域(全局与局部),闭包,以及函数的作用域链。4.
JavaScript的查询机制LHS和RHS解析
这两种查询机制对于变量的作用域链和最终值的获取起着核心作用。在详细讨论LHS和RHS查询之前,我们先来理解作用域。
JavaScript匿名函数用法分析
本文将深入解析JavaScript匿名函数的定义、用法及其在实际开发中的应用。首先,让我们理解JavaScript中定义函数的两种基本方式:函数声明和函数表达式。1.


