iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 16
1
自我挑戰組

Head First!從頭開始學JS 《深入淺出 JavaScript 程式設計》讀書筆記系列 第 16

Day16. 眼前的NaN不是NaN,你說的type是什麼type?

  • 分享至 

  • twitterImage
  •  

本日閱讀進度:第七章 重要的資料型別(265~274頁)

重點摘要:

  1. null VS undefined
  • 為什麼有這兩個這麼相似的物件?
    JavaScript一開始的想法是讓一個值代表尚未被初始化為任何值的變數,另一個值代表尚不存在的物件。

  • 該如何區分這兩者的用途?
    null常用於應該有物件但是卻無法建立或找到的情況,亦即表示一個物件尚不存在;
    而undefined常用於變數尚未被初始化、物件缺少了屬性、陣列缺少了值的情況。

  1. 什麼是typeof?
    typeof是JavaScript內建的運算符,可以用來查詢運算元的資料型別。(類似於Ruby的.class方法)
    用法如下:
var subject = "Just a string";
var probe = typeof subject;
console.log(probe);
// "string"

大家可以試著想想以下會得到什麼答案:

var test1 = {};
var test2 = ["abc", 123];
var test3;
var test4 = null;
function test5() {return "abcdef"};

console.log(typeof test1);
以下略
  1. NaN
    NaN常被稱為"Not a number",代表無法表示的數值結果。例如電腦無法表示0/0的計算結果,所以會以NaN來表示。
    有趣的是,它是JavaScript中唯一一個自己不等於自己的值。
console.log(NaN != NaN)
// true

但是上面才說是not a number,用typeof一查:

console.log(typeof(NaN));
// "number"

會不會覺得黑人問號呢?

本來今天想介紹等於運算符(==)的,但已經超過300字了,就等到明天再來互相傷害吧!

PS.標題致敬蕭煌奇的《你是我的眼》

本文同步發表於cichen


上一篇
Day.15 DOM:取值、設值,有時還有null
下一篇
Day17. JavaScript的==怎麼用?不要問,很恐怖!
系列文
Head First!從頭開始學JS 《深入淺出 JavaScript 程式設計》讀書筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言