iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
自我挑戰組

node.js 從初學者到高手!系列 第 11

Day 11 學習node.js所需具備的超重要知識-JavaScript (5) 資料型態轉換、strict equality

  • 分享至 

  • xImage
  •  

在JS中,還有非常方便的一點是,在需要時,編譯器可以幫忙把資料型態轉為正確的資料型態。
讓我們直接來看例子吧!

let a = 30;

console.log(a == 30);

console.log(a == 25);

console.log(a == '30');

印出的結果為:
https://ithelp.ithome.com.tw/upload/images/20230925/20163170vs2D0MWMUE.png
順帶一提這邊的true和false就是前面提過的boolean布林值喔~

印出的前兩行大家應該沒有問題,但看到第三個也是true可能有些人就會開始覺得疑惑,數值怎麼會等於字串呢?其實這是因為JS可以知道這邊我們應該會需要把'30'轉換成數值的型態,所以就直接先幫我們轉換完了再進行比較,所以才會印出true喔!

講到這邊就可以再介紹一個JS才有的operation,叫做strict equality,個人會翻譯為「限制型比較」。會比原本的 == 或 != 再多一個 = ,變成 === 和 !== ,它的功用是在比較時也會根據型態來比較,就不會像前面的程式一樣會將字串轉成數值了,那我們再用這個方式做一次~

let a = 30;

console.log(a === 30);

console.log(a === 25);

console.log(a === '30');

console.log(a !== '30');

印出的結果:
https://ithelp.ithome.com.tw/upload/images/20230925/20163170684XEQMRWa.png
可以看到第三個結果和上一次的不一樣了喔~

最後再讓我們學一下要怎麼自行轉換資料型態吧!

看看下面的例子:

let price = '800';

console.log(price + 50);

我希望印出的是850,但卻印出80050,這是因為編譯器這邊使用的是字串+數值的方式,才會顯示這樣的結果。

這個問題我們可以透過price = Number(price)轉換型態來解決!(注意N要大寫!)

let price = '800';

price = Number(price);

console.log(price + 50);

這樣結果就變成我們想要的850囉~~

今天的分享到這邊~我們明天再見!


上一篇
Day 10 學習node.js所需具備的超重要知識-JavaScript (4) 印出數值和字串、介紹Array
下一篇
Day 12 學習node.js所需具備的超重要知識-JavaScript (6) if, else條件判斷
系列文
node.js 從初學者到高手!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言