标签: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