1. JavaScript 基础

  2. 深入数据和类型

  3. 函数进阶

  4. 运算符

  5. 浏览器存储

  6. Document

  7. Web API

  8. 事件

  9. 工具与规范

  10. 实例

  11. 练习

JavaScript 中的数据被区分成各种各样的类型,如此一来能对不同类型的数据进行不同的操作。比如对于数字的数据,我们希望能对其进行加减乘除,因此有便有了数字类型。对于字符串的数据,我们希望能对其进行拼接,或查询是否包含某个字符的操作,因此便有了字符串类型。

$$tip

一个变量的类型由它所赋值的数据确定。

$$

JavaScript 中的类型分为原始类型与对象类型两大类。

原始类型:

  • String:字符串类型,保存文本的字符序列,例如: "三眼鸭的编程教室"
  • Number:数字类型,整数或浮点数,例如: 42或者 3.14159
  • BigInt:大整数类型。
  • Boolean:布尔类型,只有两个值 truefalse
  • undefined:未定义类型,变量未赋值时的值。
  • null:空值类型,与 undefined 类似。
  • Symbol:标识符类型,实例是唯一且不可更改的类型。

对象(引用)类型:

能存储多个值作为属性,包括并不限于 objectfunctionarrary 等等。

类型判断

通常情况下,一般使用 typeofinstanceof 来判断一个变量的类型。

typeof

typeof 是一个操作符,右边接变量,返回一个字符串类型描述。

typeof "三眼鸭" // string
typeof 123 // number
typeof 1000n // bigint
typeof true // boolean
typeof undefined // undefined
typeof null // object
typeof Symbol() // symbol
typeof {} // object
typeof new Function() // object
typeof new Date() // object
typeof new RegExp() // object

$$warning

由于历史遗留问题,typeof 并不能很完美地返回想要的结果:

  • 对于原始类型, null 类型返回 object ,其余返回正确的类型。
  • 对于对象类型,除了 function 均返回 object

$$

instanceof

instanceof 用来判断变量是否是某个类型的实例,如果是则返回 true ,否则返回 false 。相对于 typeofinstanceof 用来判断对象类型。

[] instanceof Array // true
function () {} instanceof Function // true
new Number(123) instanceof Number // true
new Date() instanceof Date // true

$$tip

instanceof 运算符的原理是检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。

$$