iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 18
1

本日閱讀進度:第七章 重要的資料型別(285~306頁)

重點摘要:

1. 加減乘除時的資料型別轉換
除了==在做比較時會自(ㄐㄧ)動(ㄆㄛˊ)轉換資料型別,加減乘除時也會自動轉換。
其中,加法是最奇怪的了。

  • 加法(+)時的轉換
    如果要把數字和字串相加,JavaScript會把數字轉成字串,然後對兩個字串進行串接。得出的值會是字串。
var addns = 548 + "7";
console.log(addns)
// "5487"

字串放在前面也是一樣。

var addsn = "14" + 50;
console.log(addsn)
// "1450"

但如果是這種情況:

var qun = 1 + 2 + "cats";
console.log(qun)
// "3cats"

加上圓括號的話:

var qun = 1 + (2 + "cats");
console.log(qun)
// "12cats"
  • 減法、乘法、除法時的轉換
    如果要把數字和字串做減法、乘法、除法的運算,JavaScript會把字串轉成數字,然後對兩個數字進行運算。
    得出的值也是數字。
var multi = 3 * "4";
// 12

var divi = 80 / "20"
// 4

var mini = "9529" - 2
// 9527

2. truthy值與falsey值
在JavaScript中,有些值並非true或false,但是在條件式中,它們卻會被視為true或false,JavaScript稱這些值為truthy或falsey。
判斷的技巧是,先判斷是否為falsey值,非falsey值即為truthy值。
而JavaScript有5個值是falsey值:

  • undefined 是 falsey值
  • null 是 falsey值
  • 0 是 falsey值
  • 空字串 是 falsey值
  • NaN 是 falsey值

3. 字串既是一個基本資料型別又是一個物件?
在JavaScript,可以建立一個像基本資料型別的字串,也可以建立一個像物件的字串。
以下介紹一些常用的字串方法:

  • length屬性:用於保存字串中的字符個數。
var str = "iloveruby";
console.log(str.length)
// 9
  • charAt方法:charAt方法可以取得索引值對應的字符。如果輸入的數字大於字串長度,會回傳空字串。
var str = "iloveJS";
console.log(str.charAt(5))
// "J"
  • indexOf方法:indexOf方法可以取得引數首次在字串出現時,首字的索引值。
var str = "loveilovecatlove";
console.log(str.indexOf("love"))
// 0

可以再加上一個數字的引數,做為開始搜尋的索引位置。

var str = "loveilovecatlove";
console.log(str.indexOf("love", 2))
// 5

如果找不到該字串,則會回傳-1。

var str = "loveilovecatlove";
console.log(str.indexOf("dog"))
// -1
  • split方法:split方法會取得一個字符做為分隔符,藉此將字串分割。
var str = "i|love|cat";
console.log(str.split("|"))
// ["i", "love", "cat"]

其他還有replace、toLowerCase、match等眾多方法,就等以後有機會再介紹了。

PS.今天的標題梗來自“繼續旋轉我沒關係”

本文同步發表於cichen


上一篇
Day17. JavaScript的==怎麼用?不要問,很恐怖!
下一篇
Day19. 同步和非同步傻傻分不清?
系列文
Head First!從頭開始學JS 《深入淺出 JavaScript 程式設計》讀書筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言