《JavaScript启示录》——1.19 验证对象是否是特定构造函数的实例
2023-09-11 14:17:43 时间
原始值使用对象包装器,判断实例时(如 foo instanceof String //返回false),instanceof操作符将返回false。如果使用new操作符创建字符串 foo ,instanceof操作符会返回true。
JS不靠谱系列: 写一个验证过期时间的函数,包含jest单元测试 我们经常用到的token还是cookie,都默认有一个过期时间 我们做鉴权的时候,很依赖这个,所以捣鼓下能不能再严谨点 因为之前都是以后台固定的格式,直接拿到值做一个简单的判断; 那,假如后台传过来的日期格式变了呢!!有兴趣的瞧瞧。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
本节书摘来自异步社区《JavaScript启示录》一书中的第1章,第1.19节,作者:【美】Cody Lindley著,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.19 验证对象是否是特定构造函数的实例通过使用instanceof操作符,可以确定(true或false)一个对象是否是特定构造函数的实例。
如下代码,要验证的是InstanceOfCustomObject对象是否是CustomConstructor构造函数的实例。它适用于用户自定义对象,同时也适用于用new操作符创建的原生对象。
!DOCTYPE html html lang="en" body script // 用户自定义对象构造函数 var CustomConstructor = function () { this.foo = bar; }; // 初始化CustomConstructor的实例 var instanceOfCustomObject = new CustomConstructor(); // 输出true console.log(instanceOfCustomObject instanceof CustomConstructor); // 原生对象亦是如此 console.log(new Array(foo) instanceof Array) // 输出true /script /body /html
注意
使用instanceof操作符时需要注意的一件事情是,任何时间判断一个对象是否是Object的实例时,它都将返回true,因为所有对象都继承自Object()构造函数。 原始值使用对象包装器,判断实例时(如 foo instanceof String //返回false),instanceof操作符将返回false。如果使用new操作符创建字符串 foo,instanceof操作符会返回true。所以,请记住,instanceof只适用于构造函数创建返回的复杂对象和实例。JS不靠谱系列: 写一个验证过期时间的函数,包含jest单元测试 我们经常用到的token还是cookie,都默认有一个过期时间 我们做鉴权的时候,很依赖这个,所以捣鼓下能不能再严谨点 因为之前都是以后台固定的格式,直接拿到值做一个简单的判断; 那,假如后台传过来的日期格式变了呢!!有兴趣的瞧瞧。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- JavaScript中防止重复提交
- 教你如何检查一个函数是否为JavaScript运行时环境内建函数
- javascript新手实例1-DOM基本操作
- javascript面向对象程序设计
- Win10系列:JavaScript多媒体
- javascript实例:逐条记录停顿的走马灯
- javascript遍历控件(实例详解)
- JavaScript 错误处理, Throw、Try 和 Catch入门
- [Javascript] Filter out Duplicates from Flat JavaScript Array with array.filter / reduce / Set
- [Javascript] Compose multiple functions for new behavior in JavaScript
- [Javascript] Proper use of console.assert in JavaScript
- [Javascript] Call Stack
- [Javascript] How to use JavaScript's String.replace
- [Javascript] Linting JavaScript with ESLint
- javascript:得到变量类型的方法(chrome 105.0.5195.125)
- [Javascript] Create Your First Iterator in JavaScript
- [Javascript] Multiply Two Arrays over a Function in JavaScript
- [Javascript] Link to Other Objects through the JavaScript Prototype Chain
- [Javascript] Required function arguments in Javascript
- [Javascript] Compose multiple functions for new behavior in JavaScript
- [Javascript] Linting JavaScript with ESLint
- 使用ABAP和JavaScript代码生成PDF文件的几种方式
- 一串最简单的JavaScript代码,在Chrome开发者工具调试器里触发VM8标签的出现
- 【JavaScript变量】Javascript的全局变量&局部变量
- JavaScript向select下拉框中加入和删除元素
- 每天一个JavaScript实例-推断图片是否载入完毕
- web前端Javascript开发学习之JavaScript中的预编译如何进行
- web前端框架Javascript开发基础之JavaScript作用域
- JavaScript 修改地址栏指定参数