javascript 执行环境及作用域
2016-08-11 16:29
246 查看
延长作用域链:当执行流进入下列任何一个语句时,作用域就会得到加长。
方法:try-catch语句的catch块;with语句。
function buildUrl(){
var qs="?debug=true";
with(location){
var url=href+qs;
}
return url;
}with语句块中作用域的‘变量对象是只读的,不能存储标识符,只能存储在其上一层。
var o={href:"sssss"};
var href="1111";
function buildUrl(){
var qs="?debug=true";
with(o){
var url=href+qs;
}
return url;
}
var result=buildUrl();
alert(result);//sssss?debug=true
alert(href);//1111
with语句中并没有更改变量href的值,而是更改了 o 对象的 href 属性。
注意:with中首先查找的是相关对象的属性,如果没有,才改变变量的值。
没有块级作用域:
for(var i=0;i<10;i++){
document.write(i);
}
alert(i);//10
对于javascript,由for语句创建的变量i即使在for循环执行结束后,也依旧会存在于循环外部的执行环境中。
如果初始化变量时没有使用var声明,该变量会自动被添加到全局变量。
function add(num1,num2){
sum=num1+num2;
return sum;
}
var result=add(10,20);
alert(result);//30
alert(sum);//30
sum没有用var声明,但是它已经是全局变量。
方法:try-catch语句的catch块;with语句。
function buildUrl(){
var qs="?debug=true";
with(location){
var url=href+qs;
}
return url;
}with语句块中作用域的‘变量对象是只读的,不能存储标识符,只能存储在其上一层。
var o={href:"sssss"};
var href="1111";
function buildUrl(){
var qs="?debug=true";
with(o){
var url=href+qs;
}
return url;
}
var result=buildUrl();
alert(result);//sssss?debug=true
alert(href);//1111
with语句中并没有更改变量href的值,而是更改了 o 对象的 href 属性。
注意:with中首先查找的是相关对象的属性,如果没有,才改变变量的值。
没有块级作用域:
for(var i=0;i<10;i++){
document.write(i);
}
alert(i);//10
对于javascript,由for语句创建的变量i即使在for循环执行结束后,也依旧会存在于循环外部的执行环境中。
如果初始化变量时没有使用var声明,该变量会自动被添加到全局变量。
function add(num1,num2){
sum=num1+num2;
return sum;
}
var result=add(10,20);
alert(result);//30
alert(sum);//30
sum没有用var声明,但是它已经是全局变量。
相关文章推荐
- 关于JavaScript的执行环境与作用域的解读
- JavaScript的执行环境和变量作用域
- 说说 JavaScript 执行环境以及作用域
- javascript执行环境及作用域【javascript高级程序设计】
- Javascript中的执行环境和作用域细讲
- JavaScript语言精粹--执行环境及作用域,this
- 关于JavaScript的执行环境与作用域的解读
- 深入区分JavaScript中的作用域和执行环境
- 图解JavaScript执行环境、作用域、闭包
- JavaScript初学笔记之<执行环境及作用域>
- 深入理解javascript作用域系列第五篇——一张图理解执行环境和作用域
- javascript高级程序第三版学习笔记【执行环境、作用域】
- javascript执行环境及作用域链分析
- JavaScript执行环境 + 变量对象 + 作用域链 + 闭包
- JavaScript中的执行环境、变量对象和作用域链
- 我对javascript执行环境(context)的理解
- javascript的执行环境及作用域
- Javascript 作用域链 活动对象 执行环境 与 this 的纠结 总结~
- JavaScript 上下文环境和作用域,以及 call、apply 和 bind【转载+翻译+整理】
- JavaScript 中一句话的思索:this是函数在执行时所处的作用域