又是一个星期过去了
最近準备婚事真的忙翻啦~
所以上週忘了更新文章了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。