iT邦幫忙

2021 iThome 鐵人賽

DAY 4
0
Modern Web

追求JS小姊姊30天系列 第 4

追求JS小姊姊系列 Day4 -- 我知道很怪,但你不好奇字串姐變身會怎樣嗎(下)

前情提要

倒在路邊的我,醒來發現人早已不見,只好回家過節。

(時間來到了,回到家中的午餐後)
**我:**中秋節回家就是吃跟睡,難怪好睡... zzz


旁白: 看來又睡著了,上一集我還來不及講完所謂的不明確的強制轉型,這樣就能把剩下的補完了。

不明確的強制轉型

這裡再將它分為:

  1. 會影響原始變數內容的
  2. 不會影響原始變數內容的

1.會影響原始變數內容的:

1.字串運算子

+代表的是字串運算子,會強制將非字串型別的值轉換後,與字串型別內容相加。

let x = "123"; //string
let y = 123; //number

//今天我們將它們進行運算,會得到什麼?
console.log(x + y);

2.數字運算子

-代表的是數字運算子,會強制將非數字型別的值轉換

let x = "123"; //string
let y = 123; //number

//今天我們將它們進行運算,會得到什麼?
console.log(x - y);

2.不會影響原始變數內容的:

1.布林值雖然不是運算,但也會喔

(註釋:這邊搶先帶出一個JS的內容:條件判斷,之後會再詳細補充。)

以下是不明確轉型為Boolean的情境:

  1. if..else()
  2. for
  3. whiledo..while

1.條件判斷

let x = 1235;

//1.if..else
if(x){
console.log(x);//會執行
}

//2.while
while(x){
console.log(這時)
}

//3.

簡單將上面結果拆解步驟:

  1. 將變數x的Number型別內容作為引數傳入if()內
  2. if()內會將變數x的值根據ES的toBoolean的規格(truthy/falsy),自動轉為布林型別去進行判斷是否執行。

2.比較運算子:==

今天針對不明確的強制轉型部分,會提到的是:
==(寬鬆的相等) ,**===(嚴格的比較)**兩種:

  1. ==:會對值進行強制轉型
  2. ===:不會對值進行強制轉型
let x = 1;
let y = "1";

//比較兩者是否相同
console.log(x == y); //true
console.log(x === y); //false

直接來結論:
結果呈現如同上面條列的內容,一般比較數值不建議使用==作為判斷(因為判斷上會自作主張的轉換型別

以上簡單的範例,希望你都有答對,這都是包含在不明確轉型內。


今天ㄧ如往常,我又在觀察JS的姐妹們
:不過...不得不說,她們比我想的更沒料無聊。
整天不是在大喊:轉型OX,不然就是別的怪內容。

(下一秒JS姐妹們不見了)
:怎麼會?!人呢,上一秒還在眼前的吧?

(背後傳來幾個聲音)
:你在找什麼嗎?
:不,沒什麼... 我只是在亂看而已啦哈哈..
:如果你在找的是JS姐妹的話,勸你放棄吧
我:?!(回頭看到三個人,以下示意圖)

圖片來源:https://dappei.com/articles/8783

:你們不是?!鄭列、方函式、阿物件?!

-- to be continued --

那今天就到這邊摟!今天分享喜歡的歌是:
老破麻 Old Slut Distortion - 毒蟲 Mammonism Junkie【Official Music Video】
https://www.youtube.com/watch?v=FbujHo3b5pE

每天的休息,是為了後面的追求,明天見。

參考資料:
  1. https://ithelp.ithome.com.tw/articles/10191254
  2. https://ithelp.ithome.com.tw/articles/10220471
  3. https://cythilya.github.io/2018/10/15/coercion/

上一篇
追求JS小姊姊系列 Day3 -- 我知道很怪,但你不好奇字串姐變身會怎樣嗎(上)
下一篇
追求JS小姊姊系列 Day5 -- 工具人登場
系列文
追求JS小姊姊30天30

尚未有邦友留言

立即登入留言