JS的數(shù)據(jù)類型分為基本數(shù)據(jù)類型和引用數(shù)據(jù)類型
一统舀、數(shù)據(jù)類型 – 數(shù)字類型(Number)
JavaScript 中的正數(shù)、負(fù)數(shù)澄港、小數(shù)等 統(tǒng)一稱為 數(shù)字類型
JS 是弱數(shù)據(jù)類型椒涯,變量到底屬于那種類型,只有賦值之后回梧,我們才能確認(rèn)
Java是強(qiáng)數(shù)據(jù)類型 例如 int a = 3 必須是整數(shù)
- 算術(shù)運(yùn)算符
主要包括加+废岂、減-、乘*狱意、除/湖苞、取余(求模)% - 算術(shù)運(yùn)算符的優(yōu)先級(jí)
JavaScript中 優(yōu)先級(jí)越高越先被執(zhí)行,優(yōu)先級(jí)相同時(shí)以書從左向右執(zhí)行详囤。- 乘财骨、除、取余優(yōu)先級(jí)相同
- 加、減優(yōu)先級(jí)相同
- 乘隆箩、除该贾、取余優(yōu)先級(jí)大于加、減
- 使用 () 可以提升優(yōu)先級(jí)
- 總結(jié): 先乘除后加減捌臊,有括號(hào)先算括號(hào)里面的
-
NAN(not a number)
NaN 代表一個(gè)計(jì)算錯(cuò)誤杨蛋。它是一個(gè)不正確的或者一個(gè)未定義的數(shù)學(xué)操作所得到的結(jié)果
NaN 是粘性的。任何對(duì) NaN 的操作都會(huì)返回 NaN
二娃属、數(shù)據(jù)類型 – 字符串類型(string)
通過單引號(hào)( '') 六荒、雙引號(hào)( "")或反引號(hào)( ` ) 包裹的數(shù)據(jù)都叫字符串,推薦使用單引號(hào)
注意
- 無論單引號(hào)或是雙引號(hào)必須成對(duì)使用
- 單引號(hào)/雙引號(hào)可以互相嵌套矾端,但是不以自已嵌套自已(口訣:外雙內(nèi)單掏击,或者外單內(nèi)雙)
- 必要時(shí)可以使用轉(zhuǎn)義符 \,輸出單引號(hào)或雙引號(hào)
-
+運(yùn)算符 可以實(shí)現(xiàn)字符串的拼接
口訣:數(shù)字相加秩铆,字符相連 -
模板字符串
語法:字符串用反引號(hào)``包含變量用${}包含
let name = prompt("請(qǐng)您輸入姓名:")
let age = prompt("請(qǐng)您輸入年齡:")
document.write(`大家好砚亭!我叫${name},今年${age}歲了`)
三殴玛、數(shù)據(jù)類型 – 布爾類型(boolean)
有兩個(gè)固定的值 true 和 false捅膘,表示肯定的數(shù)據(jù)用 true(真),表示否定的數(shù)據(jù)用 false(假)
四滚粟、數(shù)據(jù)類型 – 未定義類型(undefined)
只有一個(gè)值 undefined
只聲明變量寻仗,不賦值的情況下,變量的默認(rèn)值為 undefined
如果檢測變量是undefined就說明沒有值傳遞過來
五凡壤、數(shù)據(jù)類型 – 空類型(null)
null 僅僅是一個(gè)代表“無”署尤、“空”或“值未知”的特殊值
null 開發(fā)中的使用場景:把 null 作為尚未創(chuàng)建的對(duì)象(將來有個(gè)變量里面存放的是一個(gè)對(duì)象,但是對(duì)象還沒創(chuàng)建好亚侠,可以先給個(gè)null)
-
null 和 undefined 區(qū)別:
- undefined 表示沒有賦值
- null 表示賦值了曹体,但是內(nèi)容為空
六、檢測數(shù)據(jù)類型
- 可以看控制臺(tái)輸出數(shù)字型和布爾型顏色為藍(lán)色硝烂,字符串和undefined顏色為灰色
- 通過 typeof 關(guān)鍵字檢測數(shù)據(jù)類型
typeof 運(yùn)算符可以返回被檢測的數(shù)據(jù)類型箕别。它支持兩種語法形式:- 作為運(yùn)算符: typeof x (常用的寫法)
- 函數(shù)形式: typeof(x)
換言之,有括號(hào)和沒有括號(hào)滞谢,得到的結(jié)果是一樣的串稀,所以我們直接使用運(yùn)算符的寫法
七、類型轉(zhuǎn)換
- 為什么需要類型轉(zhuǎn)換狮杨?
JavaScript是弱數(shù)據(jù)類型: JavaScript也不知道變量到底屬于那種數(shù)據(jù)類型母截,只有賦值了才清楚
使用表單、prompt 獲取過來的數(shù)據(jù)默認(rèn)是字符串類型的禾酱,此時(shí)就不能直接簡單的進(jìn)行加法運(yùn)算
隱式轉(zhuǎn)換
某些運(yùn)算符被執(zhí)行時(shí),系統(tǒng)內(nèi)部自動(dòng)將數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,這種轉(zhuǎn)換稱為隱式轉(zhuǎn)換颤陶。
- 規(guī)則:
+號(hào)兩邊只要有一個(gè)是字符串颗管,都會(huì)把另外一個(gè)轉(zhuǎn)成字符串
除了+以外的算術(shù)運(yùn)算符 比如- * / 等都會(huì)把數(shù)據(jù)轉(zhuǎn)成數(shù)字類型 - 缺點(diǎn):
轉(zhuǎn)換類型不明確,靠經(jīng)驗(yàn)才能總結(jié) - 小技巧:
+號(hào)作為正號(hào)解析可以轉(zhuǎn)換成數(shù)字型
任何數(shù)據(jù)和字符串相加結(jié)果都是字符串
顯式轉(zhuǎn)換
轉(zhuǎn)換為數(shù)字型
-
Number(數(shù)據(jù))
- 轉(zhuǎn)成數(shù)字類型
- 如果字符串內(nèi)容里有非數(shù)字滓走,轉(zhuǎn)換失敗時(shí)結(jié)果為 NaN(Not a Number)即不是一個(gè)數(shù)字
- NaN也是number類型的數(shù)據(jù)垦江,代表非數(shù)字
-
parseInt(數(shù)據(jù))
只保留整數(shù) -
parseFloat(數(shù)據(jù))
可以保留小數(shù)(整數(shù)小數(shù)都有)
轉(zhuǎn)換為字符串型
String(數(shù)據(jù))
變量.toString(進(jìn)制)