iT邦幫忙

2021 iThome 鐵人賽

DAY 2
0
Modern Web

JavaScript 筆記 2 版系列 第 2

JavaScript Day02 - 變數(1)

  • 分享至 

  • xImage
  •  

變數(variable)

Day04 - 變數(01):主要介紹變數的基本定義以及 var 的用法

常見的資料型別

  • 字串(string)
  • 數字(number)
  • 布林(boolean)
  • undefined:宣告變數卻無賦予值
let name = "鐵人賽"; // 字串
let year = 2021;    // 數字
let ironman = true; // 布林

typeof name; // 'string'
typeof year; // 'number'
typeof ironman; // 'boolean'

let def;
typeof def; // 'undefined'

typeof:在不知道現在的變數內容變成哪種型別時,可以使用 typeof 來檢查

ES6:let、const

變數目前主要會使用 letconst,用法如上面說明型別的例子,差異我理解如下

  • 作用域(scope)不同:letconst 是區塊作用域(block scope),作用範圍在 {} 內,超過 {} 的範圍就沒作用了,var 是函式作用域(function scope),而 var 可能會造成汙染的部分就參考下面的參考資料了
  • 可否重複宣告:letconst 不可以重複宣告,var 可以,所以可能會造成後面影響前面的問題
  • 可否修改值:letvar 則可以修改值,或是一開始不定義值(undefined),const 宣告時必須有值,並且不可修改,因此如定義是一個常數,若是 Object 時可以修改 Object 裡面的值
  • windows 內的屬性:宣告全域變數時,letconst 不會出現在 windows 內,var
var a = "test_a";
let b = "test_b";

console.log(window.a); // "test_a"
console.log(window.b); // undefined

初學可能會眼花撩亂,我個人使用上會是如下所述,var 就盡量不使用了

  • let:會變動的,如長度、數量、可能每次都不同的參數
  • const:固定的,如網址、API、不希望被改動的參數

參考資料

MDN:let
MDN:const
MDN:var

JavaScript ES6 Block Scope - let, const
鐵人賽:ES6 開始的新生活 let, const
[JS學徒特訓班] JavaScript ES6 : var, let, const 差異
JavaScript基本功修練:Day5 - 宣告變數 - let、const、var
在 JavaScript 中,Var、Let、Const 的差異?
Day 05: ES6篇 - let與const
JavaScript: var, let, const 差異
(網路上資料真的很多,就請大家參考自行參考)

次回

再稍微說明一下變數的應用


上一篇
JavaScript Day01 - 說明
下一篇
JavaScript Day03 - 變數(2)
系列文
JavaScript 筆記 2 版31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言