基本类型¶
两个特殊值¶
// 未赋值,默认初始值为:undefined
let age;
// 无、空、值未知
let age = null;
Number¶
JS 中的 Number 类型没有区分整数和浮点数,数字都被存储为双精度浮点数,所以存在精度限制:-(2^53 - 1) ~ 2^53 - 1
let decLiteral = 6;
let floatNumber = 1.1;
// 科学表示法
let a = 1.024e3 //1024
let b = 1024e-3 //1.024
// 进制:0b, 0o, 0x
let binaryLiteral = 0b1010; // 二进制数值
let hexLiteral = 0xf00d; // 十六进制数值
let notANumber = 0/0; // NaN 非数值 Not a Number
let infinityNumber = 1/0; // Infinity 无穷大
let infinityNumber = -1/0; // -Infinity 负无穷大
BigInt¶
ES6 引入了 BigInt 可表示任意精度的整数
// 在整数末尾加个n
const a = 9007199254740999n;
// 可以用BigInt()将其它类型转为BigInt,但被转换的数不能超过安全值
const b = BigInt(1000000000) // 1000000000n
const b = BigInt("1000000000") // 1000000000n
const b = BigInt("0x3b9aca00") // 1000000000n
String¶
let str1 = 'Hi'; // 单引号
let str2 = "Hello"; // 双引号
console.log("hello %s", "7c") // 格式化:%d 整数,%f 浮点数,%s 字符,%o 对象
console.log(`can embed another ${str}`); // 反引号,也可叫做模版字符串,用于解析变量
- 转义符
\n // 换行
\r // 回车
\t // 制表符
// 版权符©
\251
\xA9
\u00A9
- 方法
hello.length // 5,获取长度
'hello'[1] // e,索引
Boolean¶
let ageFieldChecked = false;
let nameFieldChecked = true;
以下值是 false
undefined
null
0
NaN
"" // 包括 '' 和 ``
以下值是 true
[] // 空数组
{} // 空对象
Symbol¶
ES6 引入的基本类型,用于创建唯一标识符,不可变。主要用作对象属性的键,以避免属性名的冲突。
// 创建 Symbol 时可以提供一个描述,描述是可选的,主要用于调试,没有其它作用
// 即使给两个 Symbol 相同的描述,它们也是不同的
let symbol1 = Symbol("mySymbol");
let symbol2 = Symbol("mySymbol");
console.log(symbol1 === symbol2); // 输出:false