基础类型
JavaScript 提供了八种基本数据类型:
- Boolean 代表真值:
true
或false
。 - Number 代表整数或浮点数。
- BigInt 代表超出整数限制的整数。
- Null 表示对象的缺失。
- String 代表文本数据。
- Symbol 代表不可变且唯一的原始值。
- Undefined 表示值的缺失。
- Object, 复杂数据类型。
除了 Object
之外的所有类型都定义了可直接表示的不可变值。我们将这些类型的值称为原始值,即基础类型。
Boolean
console.log(58 > 42) // true
console.log(true && false) // false
console.log(!false) // true
Number
console.log(58 + 42) // 100
console.log(5 * 4.8) // 24
BigInt
通过在整数末尾添加 n 或调用 BigInt()
函数来创建 BigInt。
// BigInt
const x = BigInt(Number.MAX_SAFE_INTEGER); // 9007199254740991n
console.log(x + 1n === x + 2n);
// false 因为 9007199254740992n 和 9007199254740993n 不相等
// Number
console.log(Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2);
// true b因为两者都是 9007199254740992
Null
null
值表示某个对象值的缺失。
function getVowels(str) {
// `/[aeiou]/gi` 是正则表达式
const m = str.match(/[aeiou]/gi);
// `m` 可以是对象或 `null`
if (m === null) {
return 0;
}
return m.length;
}
console.log(getVowels('sky'));
// 预期输出:0
String
String
类型表示文本数据,编码为表示 UTF-16 代码单元的 16 位无符号整数值序列。
let a = 'Hello'
let b = "Literank"
console.log(a) // Hello
console.log(a + " " + b) // Hello Literank
const c = "foo";
const d = "foo";
console.log(c === d); // true
console.log("foo" === "foo"); // true
Symbol
Symbol
是一个唯一且不可变的原始值,可用作 Object
属性的键。
const sym1 = Symbol();
const sym2 = Symbol("foo");
const sym3 = Symbol("foo");
console.log(sym2 === sym3); // false
console.log(Symbol("foo") === Symbol("foo")); // false
Undefined
JavaScript 通常用 undefined
表示某种值的缺失。
function test(t) {
if (t === undefined) {
return 'Undefined value!';
}
return t;
}
let x;
console.log(test(x)); // Undefined value!
代码挑战
编写一个名为
checkUndefined
的函数,该函数接受一个数组作为输入,并返回一个仅包含非undefined
元素的新数组。不用担心
array
,后面会介绍它。
Loading...
> 此处输出代码运行结果