iT邦幫忙

0

[鼠年全馬鐵人挑戰] Week26 - JavaScript 練習題- 變數型別判斷與弱型別轉型

又是一個星期過去了
最近準備婚事真的忙翻啦~
所以上週忘了更新文章了QQ
沒關係 再來繼續加油努力:)

變數型別判斷與弱型別轉型練習

請觀看此文章後,解答以下題目。

第一題

請依序告知以下 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。
第五個原因同第四個,因為轉成字串處理了,所以型態是字串。

第二題

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。


尚未有邦友留言

立即登入留言