基本數(shù)據(jù)類(lèi)型 JS中的數(shù)據(jù)類(lèi)型由原始值和對(duì)象共同組成,原始值一共有七種原始值: 數(shù)值(Number) 大整數(shù)(BigInt) 字符串(String) 布爾值(Boolean) 空值(Null) 未定義(Undefined) 符號(hào)(Symbol) 數(shù)值和大整數(shù) 數(shù)值(Number):在js中所有的整數(shù)
JavaScript中的數(shù)據(jù)類(lèi)型包括原始值和對(duì)象,其中原始值有七種類(lèi)型:
數(shù)值(Number): 在JavaScript中,所有的整數(shù)和浮點(diǎn)數(shù)都屬于數(shù)值類(lèi)型。
let a = 3
let b = 3.1415926
JavaScript中的數(shù)值有一定的范圍限制,超出范圍后會(huì)顯示近似值,進(jìn)一步超出則顯示為科學(xué)計(jì)數(shù)法或Infinity(無(wú)窮大)。
a = 0.1 + 0.3 // 0.30000000000000004
a = 1 - "2" // NaN(非數(shù)值)
大整數(shù)(BigInt): 用于表示較大的整數(shù),以 "n" 結(jié)尾,其范圍取決于內(nèi)存大小,不支持小數(shù)。
a = 9999999999999999999n
字符串(String): 使用單引號(hào)或雙引號(hào)表示字符串。
let a = "hello"
let b = 'world'
字符串轉(zhuǎn)義使用反斜杠(\)。
a = "這是一個(gè)\"字符串\""
字符串換行需要在行尾加上反斜杠(\)。
a = "這是一串\
字符串"
模板字符串使用反引號(hào)(``)表示,可以直接換行,保留字符串的換行和空格效果。
a = `這是一串
字符
串`
模板字符串可以嵌入變量,使用`${變量名}`語(yǔ)法。
let a = "xiaoli"
let str = `name is ${a}` // name is xiaoli
布爾值(Boolean): 表示真(true)或假(false)。
let a = true
let b = false
空值(Null): 只有一個(gè)值null,用于表示空對(duì)象,其typeof類(lèi)型為object。
let a = null
未定義(Undefined): 類(lèi)似于空值,只有一個(gè)值undefined。
let a // 變量a未賦值,為undefined
符號(hào)(Symbol): 用于創(chuàng)建唯一標(biāo)識(shí)。
let a = Symbol()
原始值不可修改,一旦創(chuàng)建就無(wú)法修改。
let a = 100
a = 200 // 檢查內(nèi)存,若沒(méi)有200的值,會(huì)創(chuàng)建一個(gè)新的值,然后a指向新值的內(nèi)存地址,不會(huì)修改原先的100
類(lèi)型檢查:JavaScript使用typeof檢查變量存儲(chǔ)的值的類(lèi)型。
let a = 100
console.log(typeof a) // number
類(lèi)型轉(zhuǎn)換:
轉(zhuǎn)換為字符串:
toString()方法:將數(shù)值轉(zhuǎn)換為字符串。
let a = 100
a.toString() // 創(chuàng)建一個(gè)字符串,a仍為數(shù)值類(lèi)型
console.log(typeof a) // number
a = a.toString() // 創(chuàng)建一個(gè)字符串并賦值給a,a變?yōu)樽址?lèi)型
console.log(typeof a) // string
null、undefined沒(méi)有toString方法,無(wú)法轉(zhuǎn)換為字符串,會(huì)報(bào)錯(cuò),其他類(lèi)型可以通過(guò)該方法轉(zhuǎn)換為字符串。
String()方法:將其他類(lèi)型轉(zhuǎn)換為字符串。
let a = 100
String(a) // a 是 number
a = String(a) // a是string
使用String(parm) 方法,null、undefined會(huì)轉(zhuǎn)換成字符串null、undefined。
轉(zhuǎn)換為數(shù)值:
Number()方法:將其他類(lèi)型轉(zhuǎn)換為數(shù)值。
let n = "100"
Number(n) // string
n = Number(n) // number
如果轉(zhuǎn)換源是合法數(shù)字,則正常轉(zhuǎn)換,否則轉(zhuǎn)換成NaN;空字符串或只包含空格的字符串會(huì)轉(zhuǎn)換成0。
parseInt() / parseFloat方法:只支持字符串類(lèi)型,不支持其他類(lèi)型。
a = parseInt(a) // 將字符串轉(zhuǎn)換為整數(shù)
let a = "123pppp"
a = parseInt(a) // a = 123,解析時(shí)會(huì)從左往右解析,獲取合法數(shù)字,遇到非數(shù)字時(shí)終止,如果字符串是字母開(kāi)頭數(shù)字在后,則無(wú)法解析到數(shù)字
parseInt與Number的區(qū)別:Number只能解析合法的數(shù)據(jù)以及字符串以外的類(lèi)型,parseInt只能解析字符串,但可以解析不合法的數(shù)據(jù);如果傳入的參數(shù)不是字符串,則會(huì)先將參數(shù)轉(zhuǎn)換為字符串,再進(jìn)行解析,無(wú)法解析小數(shù)位之后的數(shù)字,如果123.456,會(huì)解析成數(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都會(huì)轉(zhuǎn)換為false;對(duì)象通常都會(huì)轉(zhuǎn)換為true。
轉(zhuǎn)換為null和undefined:
a = null
a = undefined
小編推薦閱讀
count(*)、count(1)哪個(gè)更快?面試必問(wèn):通宵整理的十道經(jīng)典MySQL必問(wèn)面試題
閱讀從需求分析、產(chǎn)品設(shè)計(jì)到部署交付各階段說(shuō)明
閱讀如何利用七牛云進(jìn)行數(shù)據(jù)備份和刪除
閱讀強(qiáng)化學(xué)習(xí)筆記之【ACE:Off-PolicyActor-CriticwithCausality-AwareEntropyRegularization】
閱讀使用MailKit在.NET Core中收發(fā)郵件的完整示例
閱讀WiFi基礎(chǔ)(六):天線(xiàn)基礎(chǔ)知識(shí)
閱讀OpenAI官方開(kāi)源多智能體框架Swarm,社區(qū)反響熱烈
閱讀Vue-Vben-Admin:功能強(qiáng)大的Vue3后臺(tái)管理系統(tǒng)模板
閱讀流批一體:數(shù)據(jù)領(lǐng)域的熱門(mén)話(huà)題
閱讀深度解析Spring AI:請(qǐng)求與響應(yīng)機(jī)制的核心邏輯
閱讀.NET云原生應(yīng)用實(shí)踐(一):從搭建項(xiàng)目框架結(jié)構(gòu)開(kāi)始
閱讀llama.cpp:一個(gè)適用于中小型研發(fā)企業(yè)的高性能CPU/GPU大語(yǔ)言模型推理框架
閱讀Windows應(yīng)急響應(yīng)-Auto病毒
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請(qǐng)發(fā)郵件[email protected]
湘ICP備2022002427號(hào)-10 湘公網(wǎng)安備:43070202000427號(hào)© 2013~2024 haote.com 好特網(wǎng)