js變數提升
JS把定義在後面的變數(並不賦值)或函式(整個函式)提升到前面定義。作用域(scoping)
變數提升(Hoisting)
最簡單的栗子:
var v='Hello World';
(function(){
alert(v); //undefined
var v='I love you';
})()
變數提升:
預編譯期宣告變數不賦值
執行期賦值
(function() {
var a = 'One';
var b = 'Two';
var c = 'Three';
})()
等價於
(function() {
var a, b, c;
a = 'One';
b = 'Two';
c = 'Three';
})()
函式提升
函式提升是把整個函式都提到前面去
函式表示式
var a=function(){}
函式宣告式
function a(){})
重點:只有"函式宣告形式"才能被提升。
函式宣告:
function myTest(){
foo(); //這裡成功
function foo(){
alert("我來自 foo");
}
}
myTest();
函式表示式:
function myTest(){
foo(); //foo is not a function
var foo =function foo(){
alert("我來自 foo");
}
}
myTest();
相關文章
- 前端 -- JS變數提升前端JS變數
- JS——變數提升和函式提升JS變數函式
- 關於js變數提升JS變數
- JS 會有變數提升和函式提升JS變數函式
- 深入淺出JS - 變數提升(函式宣告提升)JS變數函式
- 深入理解js的變數提升和函式提升JS變數函式
- JS變數宣告和函式宣告提升JS變數函式
- js作用域(變數提升,預解析)例題JS變數
- 變數提升變數
- 淺談JS變數宣告和函式宣告提升JS變數函式
- JS----預編譯及變數提升詳解JS編譯變數
- 深入解析JS變數宣告和函式宣告提升JS變數函式
- 死磕JavaScript-鬆散型別、js變數儲存模型、變數提升JavaScript型別JS變數模型
- JavaScript變數提升JavaScript變數
- 變數提升(hoisting)變數
- 溫故而知新:JS變數提升與時間死區JS變數
- 變數提升驗證變數
- 前端 --弄懂JS的變數提升做這些題就夠了前端JS變數
- javascript之變數提升與函式提升JavaScript變數函式
- 動畫:「變數提升」原理中的變數真的進行提升了嗎?動畫變數
- 關於JavaScript變數提升JavaScript變數
- JS變數分析JS變數
- js基礎知識 你不知道的變數提升的坑JS變數
- JS作用域和變數提升看這一篇就夠了JS變數
- 深入理解變數提升和函式提升變數函式
- js-js的全域性變數和區域性變數JS變數
- 變數提升的考試題變數
- Javascript 函式和變數提升JavaScript函式變數
- JS變數作用域JS變數
- JS中的變數JS變數
- 《前端實戰總結》之變數提升,函式宣告提升及變數作用域詳解前端變數函式
- 函式內部的變數提升函式變數
- JS變數比較陷阱JS變數
- js宣告全域性變數JS變數
- 【Web前端培訓】預解析(變數提升)Web前端變數
- JS 的學習理解--->變數JS變數
- js中申明變數需注意JS變數
- JS基礎難點總結(函式作用域,變數提升,物件,建構函式,this)全!!!JS函式變數物件
- JavaScript中的預解析(變數提升)介紹!JavaScript變數