目录-入口-由此开始-大纲-总览-概括-枢纽-指导-指引-总领js
常见搭配
判断所有的类型
- 使用toString方法判断类型处理绝大多数类型+判断自定义对象(instanceof或使用constructor属性判断类型)
- 返回
[Object Object]
时进行进一步判断
- 返回
可能出现的类型范围比较小
- 选择性的选择判断方式
typeof运算符
child::
typeof运算符
- 返回操作数(类型)的类型
1. 适用范围:
- typeof常用于获取函数的类型
1. 不适用场景
- 除了function, 不能获取引用类型与null
- 不管什么对象或null, 都统一返回’object’
1. 语法
1. 返回值:
只能是以下字符串: “string” | “number” | “bigint” | “boolean” | “symbol” | “undefined” | “object” | “function” | “Number”
实例
指向原始笔记的链接 console.log(typeof new Date()); // object console.log(typeof new RegExp()); // object
instanceof运算符
child::
instanceof
适用范围:
1. 场景:
- 用于判断自定义对象
- 判断一个实例对象是不是由一个类实例化得来的
2. 不适用场景
- 不能获取基本数据类型
- 运算符左边不能是基本数据类型
梗概:
对于
指向原始笔记的链接a instanceof A
, 判断A.prototype是否出现在a实例对象的原型链上(详见prototype(原型对象))
原型上的constructor属性⭐
child::
使用constructor属性判断类型
适用范围:
1. 场景
- 几乎所有的类型都能使用该方法判断,除了undefined和null,其他都有constructor属性
- 但只要稍作修改即可
梗概
判断对象?.constructor === 某一种类型的构造函数
说明
- child::prototype(原型对象)
实例
指向原始笔记的链接 class Test { word: string; constructor() { this.word = 'hi' } } let obj = new Test() console.log(obj.constructor === Test)//true
toString方法⭐
child::
使用toString方法判断类型
适用范围:
1. 场景
- 基本数据类型
- js内置的类
2. 不适用场景
- 用户自定义的类
- 统一返回
[object Object]
实例
Object.prototype.toString.call('Hello')//返回[object String] Object.prototype.toString.call(false); //返回[object Boolean] Object.prototype.toString.call(false); //返回[object Null]
指向原始笔记的链接
- child::call