成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript-變量提升

李世贊 / 644人閱讀

摘要:變量提升被認(rèn)為是,中執(zhí)行上下文特別是創(chuàng)建和執(zhí)行階段工作方式的一種認(rèn)識(shí)。需要注意的是,變量提升并不是物理上層面上的把代碼移動(dòng)到最前面。變量初始化在聲明之前僅提升聲明,而不提升初始化。如果你先使用的變量,再聲明并初始化它,變量的值將是。

變量提升(Hoisting)被認(rèn)為是, Javascript中執(zhí)行上下文 (特別是創(chuàng)建和執(zhí)行階段)工作方式的一種認(rèn)識(shí)。
需要注意的是,變量提升并不是物理上層面上的把代碼移動(dòng)到最前面。而是變量和函數(shù)聲明在代碼里面的位置不會(huì)動(dòng),在編譯階段被放入內(nèi)存中。

// 正確的方式:先聲明函數(shù),在調(diào)用函數(shù)

function speaker(value){         
console.log(value);
 }     speaker("變量提升");//變量提升

我們正確的編碼方式就是先聲明,后調(diào)用,不過在Javascript中,先調(diào)用,后聲明也是可以的

// 先調(diào)用,后聲明

 speaker("變量提升");//變量提升     
 function speaker(value){
    console.log(value);     
  }

先調(diào)用,后聲明之所以仍然可以正常運(yùn)行,這是因?yàn)樵贘avaScript中執(zhí)行上下文的工作方式造成的。

變量提升也適用于其他類型和變量。變量可以在聲明之前進(jìn)行初始化和使用。但是如果沒有初始化,就不能使用它們。

//變量初始化在聲明之前

a = 6;     
var a;        
console.log(a)//6

JavaScript 僅提升聲明,而不提升初始化。如果你先使用的變量,再聲明并初始化它,變量的值將是 undefined。

var x = 1; // 聲明 + 初始化                
x console.log(x + " " + y); //"1 undefined"
var y = 2; // 聲明 + 初始化 y

//上面的代碼和下面的代碼是一樣的

 var x = 1;                 // 聲明 + 初始化 x 
 var y;  //聲明 y   
 console.log(x + " " + y);  //y 是未定義的 
 y = 2; // 初始化  y

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/104778.html

相關(guān)文章

  • Javascript中的變量提升、函數(shù)提升變量訪問原則

    摘要:變量提升什么是變量提升在函數(shù)體內(nèi)聲明的變量,無論你是在函數(shù)的最底端還是中間聲明的,那么都會(huì)把該變量的聲明提升到函數(shù)的最頂端相當(dāng)于第一行,但是只是提升變量的聲明,不會(huì)賦值。 1、變量提升 什么是變量提升?在函數(shù)體內(nèi)聲明的變量,無論你是在函數(shù)的最底端還是中間聲明的,那么都會(huì)把該變量的聲明提升到函數(shù)的最頂端(相當(dāng)于第一行),但是只是提升變量的聲明,不會(huì)賦值。 var num = 10; fu...

    zhigoo 評(píng)論0 收藏0
  • JavaScript變量提升

    摘要:發(fā)布自的博客,歡迎大家轉(zhuǎn)載,但是要注意注明出處。另外,該文章收納在的個(gè)人的知識(shí)整理倉庫,歡迎投稿介紹變量提升是人們對(duì)執(zhí)行上下文工作方式的一種認(rèn)識(shí),并不是官方給出的改變從字面上理解,變量提升的意思是變量和函數(shù)的聲明會(huì)在物理層移動(dòng)到作用域的最前 發(fā)布自Kindem的博客,歡迎大家轉(zhuǎn)載,但是要注意注明出處。另外,該文章收納在Kindem的個(gè)人的 IT 知識(shí)整理倉庫,歡迎 Star、Fork、...

    yzd 評(píng)論0 收藏0
  • ES6 變量作用域與提升變量的生命周期詳解

    摘要:不同的是函數(shù)體并不會(huì)再被提升至函數(shù)作用域頭部,而僅會(huì)被提升到塊級(jí)作用域頭部避免全局變量在計(jì)算機(jī)編程中,全局變量指的是在所有作用域中都能訪問的變量。 ES6 變量作用域與提升:變量的生命周期詳解從屬于筆者的現(xiàn)代 JavaScript 開發(fā):語法基礎(chǔ)與實(shí)踐技巧系列文章。本文詳細(xì)討論了 JavaScript 中作用域、執(zhí)行上下文、不同作用域下變量提升與函數(shù)提升的表現(xiàn)、頂層對(duì)象以及如何避免創(chuàng)建...

    lmxdawn 評(píng)論0 收藏0
  • JavaScript 變量聲明提升

    摘要:輸出的結(jié)果為輸出的結(jié)果為提升后輸出的結(jié)果為重新定義了變量輸出的結(jié)果為如果定義了相同的函數(shù)變量聲明,后定義的聲明會(huì)覆蓋掉先前的聲明,看如下代碼輸出練習(xí)的值是多少的值是多少第二題的解析請(qǐng)看這里參考資料文章文章中文版鏈接文章推薦文章變量提升 JavaScript 變量聲明提升 原文鏈接 一個(gè)小例子 先來看個(gè)例子: console.log(a); // undefined var a =...

    fireflow 評(píng)論0 收藏0
  • JavaScript變量提升

    摘要:變量提升需要注意兩點(diǎn)提升的部分只是變量聲明,賦值語句和可執(zhí)行的代碼邏輯還保持在原地不動(dòng)提升只是將變量聲明提升到變量所在的變量范圍的頂端,并不是提升到全局范圍,說明如下會(huì)輸出變量提升之后的效果函數(shù)聲明會(huì)提升,但是函數(shù)表達(dá)式就不了。 問題 有些朋友可能會(huì)覺得javascript的代碼是從上到下,一行一行的解釋執(zhí)行的。如果按照這樣的思路,在有些情況下閱讀代碼會(huì)得到錯(cuò)誤的結(jié)果,考慮以下代碼: ...

    Zoom 評(píng)論0 收藏0
  • javascript聲明提升

    摘要:但是碰到聲明提升,這種想法就會(huì)被打破。聲明一個(gè)函數(shù)進(jìn)行相應(yīng)的操作,會(huì)得到函數(shù)聲明提升的結(jié)果。由此可以發(fā)現(xiàn)變量和函數(shù)的聲明都會(huì)被提升在其他代碼的前面執(zhí)行。一個(gè)普通塊內(nèi)部的函數(shù)聲明通常會(huì)被提升到所在的作用域的頂部。的創(chuàng)建初始化和賦值均會(huì)被提升。 Javascript聲明提升 在分析聲明提升之前,我認(rèn)為有必要知道的兩點(diǎn): 一、引擎查詢變量的兩種方式 引擎查詢變量的方式可以分為L(zhǎng)HS和RHS兩...

    evin2016 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<