基本數(shù)據(jù)類型 JS中的數(shù)據(jù)類型由原始值和對象共同組成,原始值一共有七種原始值: 數(shù)值(Number) 大整數(shù)(BigInt) 字符串(String) 布爾值(Boolean) 空值(Null) 未定義(Undefined) 符號(Symbol) 數(shù)值和大整數(shù) 數(shù)值(Number):在js中所有的整數(shù)
JavaScript中的數(shù)據(jù)類型包括原始值和對象,其中原始值有七種類型:
數(shù)值(Number): 在JavaScript中,所有的整數(shù)和浮點數(shù)都屬于數(shù)值類型。
let a = 3
let b = 3.1415926
JavaScript中的數(shù)值有一定的范圍限制,超出范圍后會顯示近似值,進(jìn)一步超出則顯示為科學(xué)計數(shù)法或Infinity(無窮大)。
a = 0.1 + 0.3 // 0.30000000000000004
a = 1 - "2" // NaN(非數(shù)值)
大整數(shù)(BigInt): 用于表示較大的整數(shù),以 "n" 結(jié)尾,其范圍取決于內(nèi)存大小,不支持小數(shù)。
a = 9999999999999999999n
字符串(String): 使用單引號或雙引號表示字符串。
let a = "hello"
let b = 'world'
字符串轉(zhuǎn)義使用反斜杠(\)。
a = "這是一個\"字符串\""
字符串換行需要在行尾加上反斜杠(\)。
a = "這是一串\
字符串"
模板字符串使用反引號(``)表示,可以直接換行,保留字符串的換行和空格效果。
a = `這是一串
字符
串`
模板字符串可以嵌入變量,使用`${變量名}`語法。
let a = "xiaoli"
let str = `name is ${a}` // name is xiaoli
布爾值(Boolean): 表示真(true)或假(false)。
let a = true
let b = false
空值(Null): 只有一個值null,用于表示空對象,其typeof類型為object。
let a = null
未定義(Undefined): 類似于空值,只有一個值undefined。
let a // 變量a未賦值,為undefined
符號(Symbol): 用于創(chuàng)建唯一標(biāo)識。
let a = Symbol()
原始值不可修改,一旦創(chuàng)建就無法修改。
let a = 100
a = 200 // 檢查內(nèi)存,若沒有200的值,會創(chuàng)建一個新的值,然后a指向新值的內(nèi)存地址,不會修改原先的100
類型檢查:JavaScript使用typeof檢查變量存儲的值的類型。
let a = 100
console.log(typeof a) // number
類型轉(zhuǎn)換:
轉(zhuǎn)換為字符串:
toString()方法:將數(shù)值轉(zhuǎn)換為字符串。
let a = 100
a.toString() // 創(chuàng)建一個字符串,a仍為數(shù)值類型
console.log(typeof a) // number
a = a.toString() // 創(chuàng)建一個字符串并賦值給a,a變?yōu)樽址愋?console.log(typeof a) // string
null、undefined沒有toString方法,無法轉(zhuǎn)換為字符串,會報錯,其他類型可以通過該方法轉(zhuǎn)換為字符串。
String()方法:將其他類型轉(zhuǎn)換為字符串。
let a = 100
String(a) // a 是 number
a = String(a) // a是string
使用String(parm) 方法,null、undefined會轉(zhuǎn)換成字符串null、undefined。
轉(zhuǎn)換為數(shù)值:
Number()方法:將其他類型轉(zhuǎn)換為數(shù)值。
let n = "100"
Number(n) // string
n = Number(n) // number
如果轉(zhuǎn)換源是合法數(shù)字,則正常轉(zhuǎn)換,否則轉(zhuǎn)換成NaN;空字符串或只包含空格的字符串會轉(zhuǎn)換成0。
parseInt() / parseFloat方法:只支持字符串類型,不支持其他類型。
a = parseInt(a) // 將字符串轉(zhuǎn)換為整數(shù)
let a = "123pppp"
a = parseInt(a) // a = 123,解析時會從左往右解析,獲取合法數(shù)字,遇到非數(shù)字時終止,如果字符串是字母開頭數(shù)字在后,則無法解析到數(shù)字
parseInt與Number的區(qū)別:Number只能解析合法的數(shù)據(jù)以及字符串以外的類型,parseInt只能解析字符串,但可以解析不合法的數(shù)據(jù);如果傳入的參數(shù)不是字符串,則會先將參數(shù)轉(zhuǎn)換為字符串,再進(jìn)行解析,無法解析小數(shù)位之后的數(shù)字,如果123.456,會解析成數(shù)字123。
a = parseFloat(a) // 原理邏輯與parseInt一致
轉(zhuǎn)換為布爾:
數(shù)字:除了0和NaA是false,其余都是true。
let a = 1
a = Boolean(a) // true
let b = 0
b = Boolean(b) // false
字符串:空字符串是false,其余都是true。
let a = "" // false
let b = " " // true
其余null和undefined都會轉(zhuǎn)換為false;對象通常都會轉(zhuǎn)換為true。
轉(zhuǎn)換為null和undefined:
a = null
a = undefined
小編推薦閱讀
機(jī)器學(xué)習(xí):神經(jīng)網(wǎng)絡(luò)構(gòu)建(下)
閱讀華為Mate品牌盛典:HarmonyOS NEXT加持下游戲性能得到充分釋放
閱讀實現(xiàn)對象集合與DataTable的相互轉(zhuǎn)換
閱讀算法與數(shù)據(jù)結(jié)構(gòu) 1 - 模擬
閱讀5. Spring Cloud OpenFeign 聲明式 WebService 客戶端的超詳細(xì)使用
閱讀Java代理模式:靜態(tài)代理和動態(tài)代理的對比分析
閱讀Win11筆記本“自動管理應(yīng)用的顏色”顯示規(guī)則
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)