【JavaScript】字面量

字面量

① 数字、② 字符串、③ 布尔值、④ null、⑤ undefined



数字

  • JS 中的数字为 number 类型。
  • 科学记数法:2.5e3 / 2.5E32.5 * 10**3 → 2500。

整数

  • 数字有 10 进制、2 进制、8 进制、16 进制。
  • 控制台输出的值为 10 进制

2 进制的数字以 0b0B 开头:

console.log(0b1010); // 10

注意:2 进制的数字只能出现 01。如果不符合规范 JS 会报错:

let a = 0b12; // 报错

8 进制的数字以 00o0O 开头:

console.log(017); // 15

注意:8 进制的数字只能出现 0 ~ 7

对于以 0 开头的 8 进制的数字,如果不合法 JS 会当成 10 进制的数字处理:

console.log(080); // 80

对于以 0O0o 开头的 8 进制的数字,如果不合法 JS 会报错:

console.log(0o80); // SyntaxError: Invalid or unexpected token

16 进制的数字以 0x0X 开头:

console.log(0xff); // 255

注意:16 进制的数字可以出现 0 ~ 9a ~ f。如果书写不合法 JS 会报错:

console.log(0x2g); // SyntaxError: Invalid or unexpected token

浮点数

  • 浮点数只能是 10 进制的。

  • 如果整数部分为 0,可以不写。

console.log(0.35); // 0.35

Infinity

由于内存的限制,JS 能表示的数值范围:
最小数值保存在 Number.MIN_VALUE 中,这个值在多数浏览器中是 5e-324
最大数值保存在 Number.MAX_VALUE 中,这个值在多数浏览器中是 1.7976931348623157e+308

如果数值超出了 JS 可以表示的范围,就会被自动转换为一个特殊的值:Infinity / -Infinity

在 JS 中,如果分子为 非 0 值,分母为 +0 / -0 / 0,则会返回 ± Infinity

console.log(1 / 0); // Infinity

Infinity 表示正无穷,-Infinity 表示负无穷。


可以使用 isFinite(xxx) 判断 xxx 是否有限。

isFinite(xxx) 会先将 xxx 转为 Number 类型(相当于用 Number() 转换),再进行判断。

如果 xxx 无穷大 / 无法判断,则返回 false;如果 xxx 有限大,则返回 true

console.log(isFinite(true)); // true
console.log(isFinite(null)); // true
console.log(isFinite(123)); // true

console.log(isFinite(NaN)); // false
console.log(isFinite(Infinity)); // false
console.log(isFinite('123s')); // false
console.log(isFinite(undefined)); // false

NaN

NaN → (not a number) 无法用数字表示的结果。

在 JS 中,0+0-0 相除会返回 NaN

console.log(0 / 0); // NaN

可以使用 isNaN(xxx) 判断一个值是否为 NaN

isNaN(xxx) 会先将 xxx 转为 Number 类型(相当于用 Number() 转换),再进行判断。

如果 xxxNaN,则返回 true;如果 xxx 不是 NaN,则返回 false

console.log(isNaN(true)); // 1 → false
console.log(isNaN(123)); // 123 → false
console.log(isNaN(null)); // 0 → false

console.log(isNaN('123s')); // true
console.log(isNaN(undefined)); // true



字符串

  • '' / " " 包裹的值,即字符串。
  • 单引号、双引号之间可以嵌套使用,但单引号内不能嵌套单引号、双引号内不能嵌套双引号。
console.log("你笑起来像'花儿'一样好看");
console.log('你笑起来像"花儿"一样好看');

转义符 \ 的作用:

  1. 将特殊字符 → 普通字符。这样就可以嵌套使用任意引号啦。
console.log('我是"超人"'); // 我是"超人"
  1. 将普通字符 → 特殊字符,以实现指定效果:① \t - 缩进、 ② \n - 换行。
console.log('我是\t超\n人');
// 我是	超
// 人



null 和 undefined

null 表示 no object;undefined 表示 no value。

null 总是与 object 关联。

typeof null; // 'object'

document.getElementById('xxx'); // null

document.parentElement; // null

// 声明 null 的子类
class A extends null {}

// 创建原型对象为 null 的对象
Object.create(null);
typeof undefined; // 'undefined'

let a; // undefined

const obj = {};
obj.a; // undefined

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JS.Huang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值