基本数据类型-JavaScript基础
"use strict"
没有类似于 "no use strict" 这样的指令可以使程序返回默认模式。
一旦进入了严格模式,就没有回头路了。
浏览器控制台多行输入
搭配使用 Shift+Enter 按键去输入多行代码,
'use strict'; <Shift+Enter 换行>
// ...你的代码
<按下 Enter 以运行>
基本数据类型
Number
JS的数学运算是安全的。我们可以做任何事:除以 0,将非数字字符串视为数字,等等。
脚本永远不会因为一个致命的错误(“死亡”)而停止。
最坏的情况下,我们会得到 NaN 的结果。
Infinity
Infinity 代表数学概念中的 无穷大∞。是一个比任何数字都大(并不是)的特殊值。表示比JS中任何数都大的数。
1 / 0 => Infinity
1 / -0 => -Infinity
1 - Infinity => -Infinity
Infinity > Infinity => false
Infinity == Infinity => true
Infinity === Infinity => true
Infinity < Infinity => false
Infinity 与 Infinity 自身的运算
Infinity - Infinity => NaN
Infinity * Infinity => Infinity
Infinity + Infinity => Infinity
Infinity * Infinity => Infinity
NaN
NaN,NaN
表示数值类型计算错误。它是一个不正确的或者一个未定义的数学操作的结果。
2 / "b" => NaN
运算出错得到NaN而不是什么JS错误!这个面试被问到了,JS数值计算会报错吗?确定会报错?那JS也太脆弱了吧。
NaN 是粘性的。任何对 NaN 的进一步操作都会返回 NaN。
特殊数值属于number类型
javascript typeof Infinity => 'number' typeof NaN => 'number'
BigInt
在JS中,“numner”类型无法精确表示大于和小于的整数。
可以看:
Number(9007199254740992) => 9007199254740992
Number(9007199254740993) => 9007199254740992
Number(9007199254740994) => 9007199254740994
Number(9007199254740995) => 9007199254740996
有时我们需要很大的整数,例如用于加密或微秒精度的时间戳。
BigInt 类型用于表示任意长度的整数。
typeof 10n => "bigint"
可以通过将 n
附加到整数字段的末尾来创建 BigInt 值
主流浏览器已经全面支持BigInt,IE除外
BigInt运算时,不能与number类型混合运算。只能BigInt与BigInt运算。
String
三种包含字符串方式:
- 单引号
- 双引号
- 反引号
反引号是 功能扩展 引号。它们允许我们通过将变量和表达式包装在 ${…}
中。
JS没有 character 类型。C和Java中被称为
char
类型。
Boolean
null值
表示“空”,“无”值。
null 值不属于上述任何一种类型。构成一个独立的类型。
与Java相比,JavaScript 中的 null 不是一个“对不存在的 object 的引用”或者 “空
指针”。
虽然typeof null === 'object'
,但是null不是一个object。null是特殊值。
undefined值
表示“未被赋值”。
与null一样自成一派。
不建议显式的给变量赋值为undefined。
typeof
typeof alert => "function"
typeof null => object
- null实际上并不是一个object,这是JS的一个语言上的错误,为了兼容被一致保留下来。
- 虽然函数隶属于 object 类型。但是 typeof 会对函数区分对待,并返回"function" 。这也是来自于 JavaScript 语言早期的问题。从技术上讲,这种行为是不正确的,但在实际编程中却非常方便。