iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0

布林(Boolean)

什麼是布林值(Boolean)

布林值是電腦科學裡辨別 truefalse 的資料型別,以發明布林代數的數學家喬治.布爾來命名。數字型別可以從1到1億到無限大,字串型別只要是文字段落都可以算字串,但布林值就只有兩個值:truefalse

  • true:代表是、真、正確的意思
  • false:代表否、假、不正確的意思
let goSleep = true; // 宣告一個變數為 true
console.log(goSleep); // true
console.log(typeof goSleep); // boolean 型別為布林值

為什麼會需要布林值呢?

小明是否為會員? // true 是會員
我的報告交了嗎? // false 還沒交

在判斷對錯的時候,雖然我們人類看的時候可能可以馬上知道這段敘述是對的還是錯的,但是電腦不知道,你要告訴電腦,我們需要以布林值讓電腦去做判斷,以電腦的邏輯才會知道這段敘述是正確或是不正確的。

單純的數學比較也可以看到電腦判斷正確與否後給出的布林值:

console.log(5>3); // true
console.log(1>3); // false

布林值後面將會被大量地運用在各種判斷。


undefined、null

undefined

宣告一個變數後,如果沒有賦予它任何值,它就會是 undefined 尚未被賦予值的狀態:

let a; //宣告一個變數 a
console.log(a); // undefined 尚未被賦予值
console.log(typeof a); // 型別也是 undefined

此時變數是存在的,只是還沒有賦予值給他,所以會回傳 undefined
相對地,如果是呼叫一個不存在的變數就會發生錯誤。

null

當資料非常大筆,如後面會提到的陣列跟物件,它們是用組合的方式將大量的資料放在一個變數上,但資料筆數很多時,所佔的記憶體就會不小,可能會影響到瀏覽器的讀取速度。所以當我們用不到這筆資料時,我們就可以使用 null 去把這個變數裡的資料清空,釋放記憶體空間。

let b = null;
console.log(b); // null b 有被賦予值,是告知為空值

本來有資料,因應某些情況下,需要把值清空

let lunchData =  1234;
lunchData = null; // 原本是有值的,但現在把它清掉,給予空值 null

undefined、null的不同

undefined 有變數但沒有賦予值
null 曾經有被宣告過,有被賦予值,只是在某些情況下值被清空,故顯示 null 表示目前是空值


參考資料

線上課程
MDN


上一篇
Day12 字串型別(2):NaN、字串處理方法、樣板字面值
下一篇
Day14 字串轉數字、數字轉字串
系列文
從基礎開始,用 JavaScript 從頭建立起程式肌肉 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言