iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
1
Modern Web

和少女工程師一起學 JavaScript 系列 第 5

和少女工程師一起學 JavaScript:Day05 變數與屬性

  • 分享至 

  • twitterImage
  •  

變數

我們可以透過 var 宣告一個變數 a

(但閱讀時,要從等號的右邊開始 ⇒ 字串 Hi 賦予給變數 a)

var        a    = 'Hi'
宣告變數 變數名稱    字串型別 Hi (?

變數名稱的限制:開頭不能是數字、不能有-和.等等,不能是 JS 關鍵字、通常會用「名詞」開頭

沒有給值的變數預設為 undefined

var b; //undefined

變數也分為全域變數和區域變數

全域變數

在「全域範圍」內宣告的變數,稱為「全域變數」

不在 function (函式)內宣告的變數,都屬於「全域範圍」

var a = 'Hi'  // a 是全域變數

區域變數

在 function (函式)內宣告的變數,稱為「區域變數」

function test(){
	var a = 'Hi'  // a 是區域變數
} 

顧名思義「區域變數」運作的範圍就在這個函式的區域內

此時在 window(全域)下無法取到 a

a   // a is not defined

ES6 後,宣告變數可以使用 const 或是 let

透過上方的說明可以得到一個結論:只要不是使用 var let const 其中之一宣告的都不是變數

那會是什麼呢?我們透過一個例子來理解

a = 'Hi'

可以在 window 物件下找到 a

他變成了 window 物件下的屬性

window.a

//"Hi"

屬性

屬性的特性跟變數很像,像到有時候很難分辨是變數還是屬性,我們可以透過幾種方式來判斷

  • 屬性只會存在特定物件下
  • 屬性可以使用 JS delete 方法刪除,變數不能
a = 'Hi'
delete window.a
window.a
//undefined

此時因為 a 被刪除了,所以找不到 a

var a = 'Hi'
delete a
console.log(a) //'Hi'

小練習:變數與屬性

var a = 1;  // a 是變數
window.a = 2;
delete window.a;
console.log(a);  //2
b = 1; // b 是屬性
window.b = 3;
delete window.b;
console.log(b); //b is not defined

上一篇
和少女工程師一起學 JavaScript:Day04 動態型別
下一篇
和少女工程師一起學 JavaScript:Day05 提升
系列文
和少女工程師一起學 JavaScript 27
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言