标签:his 常见 index 之间 出现 stc not div 全局
本文来论述JavaScript中变量声明有var和没var的区别,关于Js中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是
在函数内部,有var和没var声明的变量是不一样的。有var声明的是局部变量,没var的,声明的全局变量。
在全局作用域内声明变量时,有var 和没var看起来都一样,我们知道,声明的全局变量,就是window的属性,究竟是否一样,我们通过ECMAScrpit5提供的属性的特性查询方法,来发现之间的区别。
var
fff = 2;
window.ffa = 3;
ffb = 4;
this
.ffc = 4;
var
ffftx = Object.getOwnPropertyDescriptor(window,
‘fff‘
);
var
ffatx = Object.getOwnPropertyDescriptor(window,
‘ffa‘
);
var
ffbtx = Object.getOwnPropertyDescriptor(window,
‘ffb‘
);
var
ffctx = Object.getOwnPropertyDescriptor(window,
‘ffc‘
);
delete
fff;
// 无法删除
delete
ffa;
// 可删除
delete
ffb;
// 可删除
delete
ffc;
// 可删除
// 函数定义表达式
var
fns =
function
(){
// ...
};
// 函数声明语句
function
fns(){
// ...
}
(
function
() {
testa();
// 打印出testa
testb();
// 报错:提示undefined is not a function
console.log(testc);
//undefined,如果移到上面就可以了
function
testa() {
console.log(
"testa"
);
}
var
testb =
function
() {
console.log(
"tesb"
);
}
var
testc =
"testc";
})();
标签:his 常见 index 之间 出现 stc not div 全局
原文地址:http://www.cnblogs.com/LiuYuXuanIsSoGood/p/7901044.html