延长作用域:
1:with语句
function buildUrl(){
var url = "hello" + qs;
}
return url;
}
if(false){
var hello = "world";
}
1:with语句
function buildUrl(){
var qs = "?debug=true";
var person = {"name":"hello"};
//(window/person)with语句可以延长js变量作用域,
//使用var 申名的变量会添加到最近接的环境
//url被添加到buildUrl函数环境就是与buildUrl环境平级,而不是with语句块环境
with(window){
}
return url;
}
alert(buildUrl()); //结果hello?debug=true;
// 没有块级的作用域
2,判断语句
if(true){
var hello = "world";
}
alert(hello); //结果world
var hello = "world";
}
alert(hello); //结果world
var hello = "world";
}
alert(hello); //结果undefined
// 3,for语句循环
//这个i的作用域会存在window运行环境中,alert(window.i); // 结果9
for(var i = 0; i < 9;i++){
doSomething(i);
}
function doSomething(i){
}
doSomething(i);
}
function doSomething(i){
}
alert(i); // 结果9
-- i 变量的作用域只会存在for循环外部作用域中,即fun函数块中
function run(){
for(var i = 0; i < 9;i++){
doSomething(i);
}
}
function doSomething(i){
}
run();
alert(i); // 结果 i未定义
//4 try 语句
try{
var flag = true;
var t = p;
}catch(ex){
}
alert(flag); //结果 true
for(var i = 0; i < 9;i++){
doSomething(i);
}
}
function doSomething(i){
}
run();
alert(i); // 结果 i未定义
//4 try 语句
try{
var flag = true;
var t = p;
}catch(ex){
}
alert(flag); //结果 true