首页 > 教程 > JavaScript中的基本数据类型

JavaScript中的基本数据类型

时间:2024-09-28 | 来源: | 阅读:177

话题: a T VA AVA SC v Ri S C JavaScript IP AV java

基本数据类型 JS中的数据类型由原始值和对象共同组成,原始值一共有七种原始值: 数值(Number) 大整数(BigInt) 字符串(String) 布尔值(Boolean) 空值(Null) 未定义(Undefined) 符号(Symbol) 数值和大整数 数值(Number):在js中所有的整数

JavaScript中的数据类型包括原始值和对象,其中原始值有七种类型:

  1. 数值(Number)
  2. 大整数(BigInt)
  3. 字符串(String)
  4. 布尔值(Boolean)
  5. 空值(Null)
  6. 未定义(Undefined)
  7. 符号(Symbol)

数值(Number): 在JavaScript中,所有的整数和浮点数都属于数值类型。

let a = 3
let b = 3.1415926

JavaScript中的数值有一定的范围限制,超出范围后会显示近似值,进一步超出则显示为科学计数法或Infinity(无穷大)。

a = 0.1 + 0.3 //  0.30000000000000004
a = 1 - "2" // NaN(非数值)

大整数(BigInt): 用于表示较大的整数,以 "n" 结尾,其范围取决于内存大小,不支持小数。

a = 9999999999999999999n

字符串(String): 使用单引号或双引号表示字符串。

let a = "hello"
let b = 'world'

字符串转义使用反斜杠(\)。

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): 用于创建唯一标识。

let a = Symbol()

原始值不可修改,一旦创建就无法修改。

let a = 100
a = 200 // 检查内存,若没有200的值,会创建一个新的值,然后a指向新值的内存地址,不会修改原先的100

类型检查:JavaScript使用typeof检查变量存储的值的类型。

let a = 100
console.log(typeof a) // number

类型转换:

转换为字符串:

toString()方法:将数值转换为字符串。

let a = 100
a.toString() // 创建一个字符串,a仍为数值类型
console.log(typeof a) // number
a = a.toString() // 创建一个字符串并赋值给a,a变为字符串类型
console.log(typeof a) // string

null、undefined没有toString方法,无法转换为字符串,会报错,其他类型可以通过该方法转换为字符串。

String()方法:将其他类型转换为字符串。

let a = 100
String(a)  // a 是 number
a = String(a) // a是string

使用String(parm) 方法,null、undefined会转换成字符串null、undefined。

转换为数值:

Number()方法:将其他类型转换为数值。

let n = "100"
Number(n) // string
n = Number(n) // number

如果转换源是合法数字,则正常转换,否则转换成NaN;空字符串或只包含空格的字符串会转换成0。

parseInt() / parseFloat方法:只支持字符串类型,不支持其他类型。

a = parseInt(a) // 将字符串转换为整数
let a = "123pppp"
a = parseInt(a) // a = 123,解析时会从左往右解析,获取合法数字,遇到非数字时终止,如果字符串是字母开头数字在后,则无法解析到数字

parseInt与Number的区别:Number只能解析合法的数据以及字符串以外的类型,parseInt只能解析字符串,但可以解析不合法的数据;如果传入的参数不是字符串,则会先将参数转换为字符串,再进行解析,无法解析小数位之后的数字,如果123.456,会解析成数字123。

a = parseFloat(a) // 原理逻辑与parseInt一致

转换为布尔:

数字:除了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都会转换为false;对象通常都会转换为true。

转换为null和undefined:

a = null
a = undefined


湘ICP备2022002427号-10湘公网安备:43070202000427号
© 2013~2019 haote.com 好特网