自執行函數語法:
(function(){}()) 外面一個括號的 是直接獲取返回值
里面計算一次
(functuon(){})() 外面2個括號並排的
是先計算前面括號的值 然后執行這個返回值 當然返回的肯定要是函數
前面是包在一起
整體性要好一些
js分為全局作用域和函數作用域,全局作用域在函數內部可以訪問到,但是函數內部的變量,外部無法訪問到
var name = “張三”;
(function(){
console.log(name)//這里因為變量提升,name === undefined,所以結果是undefined
var name = '李四'
console.log(name)//這里執行的是 name = 李四 ,所以自然就是lisi了
})()
console.log(name)//函數的作用域,在全局中無法訪問,這里結果是張三
var name = '張三';
(function(){
console.log(name)//函數內部沒有name 這個變量,所以像全局查找,全局有一個name,那么結果就是張三
name = '李四'
console.log(name)//同理,這里結果是lisi,因為name被賦值成李四
})()
console.log(name)//李四