为什么这样写的结果都为The Window;
var aname="The Window";
console.log(aname);//The Window
console.log(window.aname)//The Window
同样的代码写在$(function(){......})就不对了呢?
$(function(){
var aname="The Window";
console.log(aname);//The Window
console.log(window.aname)//underfind
});
全域變數跟區域變數
全域變數就是window的屬性
function內var聲明的變數的生命週期只在function內,非全域變數
不是很理解,我第二种也是写在$(function)里面啊
@还能再菜点吗?:
第一種,加不加var都是全域變數,都會成為window的屬性
第二種,不加var也是全域變數,也會成為window的屬性;但是加了var就是區域變數,不會成為window屬性
@RosonJ: 哦哦 ,作用域的问题,理解了
@RosonJ: 那是不是也就是说$(function(){.........})这个里面的变量就不是全局?
@还能再菜点吗?:
不是,如我上面說的第二種的第一個情況
第一種,加不加var都是全域變數,都會成為window的屬性
第二種,不加var也是全域變數,也會成為window的屬性;但是加了var就是區域變數,不會成為window屬性
$(function(){ aname="The Window"; console.log(aname);//The Window console.log(window.aname)//The Window });
試試
@RosonJ: 哦哦
作用域的问题
var aname="The Window"; // 全局变量 aname
console.log(aname);//The Window
console.log(window.aname)//The Window
同样的代码写在$(function(){......})就不对了呢?
$(function(){
var aname="The Window"; // 局部变量 aname
console.log(aname);//The Window
console.log(window.aname)//underfind
});
那是不是也就是说$(function(){.........})这个里面的变量就不是全局?
@还能再菜点吗?: Yes
$(function(){ 只能在这里面用 })
js是函数作用域。在函数中定义的变量,仅在函数内有效。