数据类型
数据类型
在 JavaScript 中,共有 8 种数据类型,其中 7 种基本类型,1 种引用类型,它们分别是:
- 基本类型
null
:空值,表示不存在undefined
:未定义,表示未定义变量的初始值Boolean
:布尔值,有 2 个值(true
和false
)String
:字符串,表示文本值的字符序列Number
:数字,表示整数或浮点数BigInt
:非常大的整数,可以表示任意大的整数Symbol
:实例唯一且不能改变
- 引用类型
Object
:对象
null
在 JavaScript 中,null
是一个原始值,表示没有任何对象值。它是 JavaScript 的假值之一,意味着在布尔上下文中被视为假。例如,下面的代码将输出 “null is falsy”
if (!null) { // true
console.log("null is falsy")
}
// null is falsy
undefined
在 JavaScript 中,undefined
是一个原始值,表示一个声明未定义的变量的初始值,或没有实际参数的形式参数。当声明一个变量但未对其进行初始化时,该变量的值为 undefined
。同时在 JavaScript 中 undefined
也是假值之一,意味着在布尔上下文中被视为假,例如:
let x
console.log(x) // "undefined"
if(!x){ // true
x = 2
console.log( x + 2 )
}
// 4
Boolean
在 JavaScript 中,Boolean
表示逻辑值真或假,其取值仅能为 true
或 false
,通常与 if
条件语句一起使用,例如:
let x = true
if (x) {
console.log("x is true")
// x is true
} else {
console.log("x is false")
}
也可以使用 Boolean
函数将其他类型的值转换为布尔值,例如:
let x = 5
let y = new Boolean(x)
console.log(y) // true
let m
let n = new Boolean(m)
console.log(n) // false
String
在 JavaScript 中,String
表示文本的字符序列(字符串)。字符串由零个或多个字符组成,可以使用单引号('')、双引号("")或反引号(``)定义。例如:
let x = 'Hello, world!'
let y = "Hello, world!"
let z = `Hello, world!`
String
还具有许多内置方法,可以用来操作文本数据。例如,可以使用 length
属性获取字符串的长度,或使用 toUpperCase()
方法将字符串转换为大写形式:
let x = 'Hello, world!'
console.log(x.length) // 13
console.log(x.toUpperCase()) // "HELLO, WORLD!"
更多关于 String 的信息请 点击这里
Number
在 JavaScript 中,Number
是一种定义为 64 位双精度浮点型的数字数据类型,表示数值。可以使用字面量语法定义数字,例如:
let x = 5
let y = 3.14
JavaScript 中的所有数字都是双精度浮点数,这意味着它们具有固定的精度和范围。由于这种表示方法的限制,JavaScript 中的数字运算可能会产生舍入误差,例如:
let x = 0.1, y = 0.2
console.log( x + y ) // 0.30000000000000004
除了常规数字之外,Number
类型还有几个特殊值,包括 Infinity
、-Infinity
和 NaN
(非数字)。可以使用 isFinite()
和 isNaN()
函数检查一个值是否为有限数或非数字,例如:
let m = 10 ** 1000
console.log(m) // Infinity
let x = 5 / 'x'
console.log(x) // NaN
let y = 1 / 3
console.log(isFinite(y)) // true
let z = '0.5x'
console.log(isNaN(z)) // true
更多关于 Number 的信息请 点击这里
BigInt
在 JavaScript 中,BigInt
表示任意精度的整数,与 Number
类型不同,BigInt
可以表示大于 Number.MAX_SAFE_INTEGER
(2^53 - 1)或小于 Number.MIN_SAFE_INTEGER
(-(2^53 - 1))的整数
可以使用 BigInt()
函数或在整数字面量后添加 n 来创建 BigInt
类型的数值。例如:
let x = BigInt(123)
let y = 456n
typeof y // bigint
BigInt
在某些方面类似于 Number
,但是也有区别:BigInt
不能用于 Math
对象中的方法;不能和任何 Number
实例混合运算,两者必须转换成同一种类型。在两种类型来回转换时要注意,因为 BigInt
变量在转换成 Number
变量时可能会丢失精度
更多关于 BigInt 的信息请 点击这里
Symbol
在 JavaScript 中,Symbol
表示一个独一无二的值,表示唯一的标识符。可以使用 Symbol() 函数创建符号值。例如:
let x = Symbol()
let y = Symbol('description')
typeof y // symbol
由于 Symbol
值都是唯一的,即使它们具有相同的描述。这意味着可以使用符号值作为对象属性的键,以避免命名冲突。例如:
let x = Symbol('key')
let y = Symbol('key')
let obj = {}
obj[x] = 'value1'
obj[y] = 'value2'
console.log(obj[x]) // "value1"
console.log(obj[y]) // "value2"
更多关于 Symbol 的信息请 点击这里