CodeGym /課程 /Frontend SELF TW /JavaScript中的變數和數據類型

JavaScript中的變數和數據類型

Frontend SELF TW
等級 33 , 課堂 1
開放

2.1 JavaScript中的變數

JavaScript是一個靈活且動態的程式語言,支持多種方式宣告變數和處理數據類型。在這堂課中,我們將探討三種關鍵的變數宣告方式 (var, let, const) 以及JavaScript中的基本數據類型。

JavaScript中的變數

JavaScript 是一個動態類型的語言。變數不具有類型。可以在任何時候將任何值賦給任何變數(但有些細節)。

要創建一個變數需要寫如下結構:

    
      var name;
    
  

可以立即為變數賦值:

    
      var name = value;
    
  

但其實在JavaScript中有整整三種創建變數的方法。我們現在就來詳細談談它們。

操作符 var

使用var宣告的變數具有功能域或全域域範圍。它們受制於“提升” (hoisting),這意味著在執行代碼時,其宣告會被移動到其作用域的頂部。

範例:

JavaScript
    
      console.log(x); // undefined
      var x = 10;
      console.log(x); // 10
    
  

在此範例中,變數x在其作用域的開始處被提升,因此 第一個console.log輸出undefined

換句話說,“提升”將我們的代碼轉換成這樣:

JavaScript
    
      var x;
      console.log(x); // undefined
      x = 10;
      console.log(x); // 10
    
  

操作符 let

開發者們很想改變var操作符的行為,但他們怕會破壞之前寫好數百萬行的代碼。 因此他們只是創造了另一個也創建變數的操作符,但行為稍有不同。

使用let宣告的變數具有塊狀域範圍。這意味著它們僅在其宣告的代碼塊內(通常在大括號{}內)可用。let不像var受制於提升。

範例:

變數y僅在if塊內存在。

JavaScript
    
      if (true) {
        let y = 20;
        console.log(y); // 20
      }

      console.log(y); // ReferenceError: y is not defined
    
  

操作符 const

使用const宣告的變數也具有塊狀域範圍,並且不能在初始化後重新賦值。然而,這並不使得通過const宣告的對象變得不可變——其屬性可以改變。

也就是說,變數不能改變,但它引用的对向是可以的。他們本來想搞得好一點,但結果又如常。

範例:

在這個範例中,常量x不能被重新賦值,但对象obj可以改變。

JavaScript
    
      const x = 30;
      console.log(x); // 30
      x = 40; // TypeError: Assignment to constant variable.

      const obj = { name: 'Alice' };
      obj.name = 'Bob'; // 這是允許的
      console.log(obj.name); // Bob
    
  

2.2 基本數據類型

JavaScript支持幾個基本數據類型,這些類型表示簡單的值,而不是複雜的对象。

型數字 (Number)

代表任何數字值,包括整數和浮點數。

範例:

JavaScript
    
      let num = 42;
      let pi = 3.14;
    
  

型字符串 (String)

代表文本數據:字符串、字符、表情符號。任何看起來像字符串的東西都屬於這裡。

範例:

JavaScript
    
      let greeting = "Hello, world!";
      let facepalm = "🤦";
      let char = 'x';
    
  

型布林 (Boolean)

代表邏輯值truefalse

JavaScript
    
      let isTrue = true;
      let isFalse = false;
    
  

型 Null

代表有意的無值。

JavaScript
    
      let empty = null;
    
  

如果類型由單個值組成,該值表示無值,那麼他到底是唯一的值還是唯一的類型?

型 Undefined

代表已宣告但未初始化的變數的值。

JavaScript
    
      let notAssigned;
      console.log(notAssigned); // undefined
    
  

2.3 比較 var, let 和 const

讓我們最後來比較一下三種變數創建方式:

特性 var let const
作用域 功能或全域 塊狀 塊狀
提升 (Hoisting) 是,但初始化不提升
重新賦值
初始化 非必要 非必要 必要

JavaScript提供多種方式來宣告變數,每種方式都有其特點和依據上下文的應用性。var因為其提升特性和全域域範圍而使用較少。 letconst因其塊狀範圍和對重新賦值的控制而在現代JavaScript中被更為推崇。

基本數據類型允許處理基本資料結構,提供創建複雜應用程序所需的基本功能。這也是全球最流行的語言之一:)

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION