iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 6
0
自我挑戰組

JavaScript基礎介紹 for 30天系列 第 6

第六天 JavaScript 資料型別(自動轉型)

  • 分享至 

  • xImage
  •  

自動轉型

昨天我們提到比較運算子,在比較的時候,如果兩邊的資料型態不一樣的時候,JavaScript 會貼心的 (雞婆)自動在背後幫你做轉型,讓兩邊可以是一樣的資料型態來做比較(但是結果有時候不會是我們想要的,直接噴錯還比較好)

  • Boolean 值的話,ture 會變成 1 , false 會變成 0 。
  • 字串會使用 Number() 方法嘗試轉成數字在進行比較。
  • 如果其中一方是物件而另一方是基本型別,會用 valueOf() 方法取得基本型別的值,在比較。

比較過程中除了判斷是不是相等以外,還有大小的比較,就是 >(小於)、<(大於)、=(等於)、>=(大於等於) 以及 <=(小於等於)。

var a = 5
var b = 10
var c = 15

console.log( a > b ) // false
console.log( a < b ) // true
console.log( a > c ) // false
console.log( a >= c ) // false

如果比較過程中遇到不一樣的型態,當然也會自動轉型。

  • 兩邊都是數字,就是單純比大小。
  • 其中一個是數字,則會先偷偷在背後把另外一個不是數字的自動轉型為數字在比較。
  • 兩邊都是字串,會照字母順序比較。
  • 其中一個是布林值(Boolean),會把 true 轉為 1 , false 為 0 。
  • 物件的話,會用 valueOf() 方法取到對應的值,如果沒有的話在用 toString() 轉型比較。

指派運算子

如果今天要處理的運算是遞增或遞減的情況的話,我們可以使用下列方法,會比較簡潔一點(請挑自己看得懂的寫)
基本的指派運算子就是 =(等於)

var a = 5
a += 50 //代表 a = a + 50
console.log(a) // 55

a += 50 就是 a = a + 50 ,先將右邊的計算完成之後在指定給左邊的 a 變數。 下面是比較常看到的指派運算子

a += b
a -= b
a *= b
a /= b
a %= b

今天介紹自動轉型的規則以及指派運算子~ 希望對大家都有一點幫助,我們明天見啦

參考資料

你懂 JavaScript 嗎?#8 強制轉型(Coercion)


上一篇
第五天 JavaScript 運算式與運算子
下一篇
第七天 JavaScript 資料型別(逗號運算子&邏輯運算子)
系列文
JavaScript基礎介紹 for 30天24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言