帶你讀書之“紅寶書”:第三章 語法基礎(chǔ)(上)之 var關(guān)鍵詞

「這是我參與2022首次更文挑戰(zhàn)的第3天,活動詳情查看:2022首次更文挑戰(zhàn)

寫在前頭

大多數(shù)小伙伴看技術(shù)書籍都會用“啃”來描述讀書的直觀感受,當(dāng)然我也是一個前端小白,白的透明那種,但是我在讀技術(shù)書籍感覺到“啃”的時候,我希望把我啃紅寶書第四版的過程的想法,總結(jié)帶給大家,以供后來者能夠更快上手。

注: 本文由于作者水平原因,如有錯誤之處,懇請大家指正,另外隨著學(xué)習(xí)的深入,體會的加深,我會不斷回來更新,修改這類文章。

思維導(dǎo)圖

image.png

脈絡(luò) (本篇只包含3.3. 變量之3.3.1var關(guān)鍵詞)

這小節(jié)其實核心就是介紹了var,let,const 這3個變量的關(guān)鍵字,以及平時的聲明風(fēng)格,實踐。
本篇先寫var關(guān)鍵詞

3.3. 變量

image.png

3.3.1var

  1. 定義變量類型不固定

簡單來說就是使用var關(guān)鍵詞聲明的變量可以存任何類型的值,就是一個盒子而已。

var name = '張三';
name = 1; // 依然是合法的,但是不推薦這么做
  1. 函數(shù)作用域

作用域在后面章節(jié)會介紹到,這里就簡單理解為一個函數(shù){}里面的所有內(nèi)容。

簡單來說就是使用var聲明的變量,只有在包含這個變量的函數(shù)作用域里面有效。其他地方使用會報錯。

 function sayHi() {
            var say = 'hi';
            console.log(say);
        }
 sayHi(); // 調(diào)用函數(shù) 輸出hi。
console.log(say); // 報錯
  1. 聲明提升

就是說可以先上車后補(bǔ)票, 先用這個變量,后面在聲明也可以。var聲明的關(guān)鍵詞,他會自動把聲明的變量提升到函數(shù)作用域的頂部。

  function sayHi() {
            console.log(say);
            var say = 'hi';
        }
 sayHi(); // 調(diào)用函數(shù) 輸出undefined。

為什么不輸出hi?因為var聲明的變量只會提升聲明,并不會把賦值也提升了。上面的代碼和下面的代碼等價。

  function sayHi() {
          var say
          console.log(say); 
          say = 'hi';
        }
 sayHi(); // 調(diào)用函數(shù) 輸出undefined。這個時候say還沒有被賦值,自然就是undefined

補(bǔ)充:已經(jīng)聲明的變量且為賦值,那么他的值默認(rèn)是undefined。

  1. 重復(fù)聲明

多次使用var關(guān)鍵詞聲明同一個變量,都會合并為一次聲明這個變量,賦值以最后一次為準(zhǔn)確。

  function say() {
         var say = 'hi';
         var say = 'Hi';
         var say = 'Hello';
          console.log(say); 
        }
 say(); // 調(diào)用函數(shù)輸出 Hello 

三次var聲明合并,最后是 var say = 'Hello';

  1. 省略var關(guān)鍵詞,聲明。

當(dāng)省略var 關(guān)鍵詞直接書寫一個變量名 會被視為是全局變量。并且在嚴(yán)格模式(另外一直JavaScript解析和執(zhí)行模型)這樣會報錯。

  function say() {
         say = 'hi'; // say 是全局變量,在函數(shù)作業(yè)域外依舊起作用
         console.log(say);  
        }
 say(); // 調(diào)用函數(shù)輸出 hi
  console.log(say); // 輸出hi
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容