JS 變數型別判斷與弱型別轉型|JS 學徒特訓班|六角學院

【六角學院 – JS 學徒特訓班 – 第三天】

這裡紀錄六角學院的 JS 學徒特訓班試題的筆記,方便日後可以在職場上可以學習與複習,總共有六十關,讓自己的 JS 觀念可以更好!

第一題

請依序告知以下 console.log 會顯示什麼值。

var a = 1;
console.log(typeof(a));

var b = "hello";
console.log(typeof(b));

var c = 1 + "hello";
console.log(typeof(c));

var d = 1 + "11";
console.log(d);
console.log(typeof(d));

參考解答:

第一個 console.log 顯示為 number
第二個 console.log 顯示為 string
第三個 console.log 顯示為 string
第四個 console.log 顯示為 111 (字串)
第五個 console.log 顯示為 string

說明:

第三個為數字與字串相加,後面因為是字串,所以會把前面數字轉為字串做處理
第四個原因同第三個,字串加字串顯示會是合併顯示,而不是相加,數字加數字才會顯示 12
第五個原因同第四個,因為轉成字串處理了,所以型態是字串

補充說明:
typeof() 運算子會回傳回一個字串值,回傳值代表的是此值的型別參考網址: typeof


第二題

var a;
a = a + "hello";
console.log(a);
console.log(typeof(a));

var b = 3;
console.log(b * "hello");

參考解答:

第一個 console.log 顯示為 undefinedhello
第二個 console.log 顯示為 string
第三個 console.log 顯示為 NaN

說明:

第一個 宣告了變數 a,但是 a 未賦予任何值,所以 a 值會是 undefined,然後字串 undefined 與 hello 合併,就會顯示 undefinedhello
第三個 宣告了變數 b 賦予值為數字 3,但是 hello 是字串,數字無法與字串相乘,所以顯示 NaN


第三題

var a = 9;
console.log(a + 9);
console.log(a + '9');

var b = "9";
console.log(b * b);
console.log(typeof(b * b));

參考解答:

第一個 console.log 顯示為 18 (數字)
第二個 console.log 顯示為 99 (字串)
第三個 console.log 顯示為 81 (數字)
第四個 console.log 顯示為 number

說明:

第一個 console.log 宣告了變數 a 並賦予值為數字 9,9 + 9 = 18
第二個 console.log 數字 9 加字串 9,原因跟第一題一樣,會把前面數字轉為字串做處理,所以會合併處理顯示 99
第三個 console.log 宣告了變數 b 並與與值為字串 9,當遇到運算值符號會(+-*/)會讓字串轉為字元做運算(前提是字串內容是數字),所以 9 * 9 = 81
第四個 console.log 因第三個的關係,所以型態是 number

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *