JavaScript 类型判断的那些事
先准备几个变量
var a = "abcde.";
var b = 222;
var c= [1,2,3]; // 或者 new Array()
var d = new Date();
var e = function(){alert(111);};
var f = function(){this.name="rrrr";};
var g ={ 'name':'rrrr'}
1. 通用型 Object.prototype.toString.call(obj) , 注意大小写
console.log(Object.prototype.toString.call(a) === ‘[object String]’) //true;
console.log(Object.prototype.toString.call(b) === ‘[object Number]’) //true;
console.log(Object.prototype.toString.call(c) === ‘[object Array]’) //true;
console.log(Object.prototype.toString.call(d) === ‘[object Date]’) //true;
console.log(Object.prototype.toString.call(e) === ‘[object Function]’) //true;
console.log(Object.prototype.toString.call(f) === ‘[object Function]’) //true;
console.log(Object.prototype.toString.call(g) === ‘[object Object]’) //true;
2.typeof 方式 ,返回都是小写形式的数据类型名称字符串
console.log(typeof a) //string
console.log(typeof b) //number
console.log(typeof c) //object
console.log(typeof d) //object
console.log(typeof e) //function
console.log(typeof f) //function
console.log(typeof g) //object
判断:alert(typeof a == "string") true
3. instanceof , 判断已知对象类型,标准的js数据类型名称,注意大小写
console.log( a instanceof String) //true
console.log( d instanceof Date) // true
console.log( c instanceof Array) // true
console.log( g instanceof Object) //true
4. obj.constructor 对象的属性判断 用 === 符号,(与内置数据类型比较时为标准的js数据类型名称,注意大小写。也可与自定义数据类型比较,但是在继承时会有些问题)
function A(){};
function B(){};
A.prototype = new B(); //A继承自Bvar obj0 = new A();
console.log(obj0.constructor === A); // false
console.log(obj0.constructor === B); // true//这里用instanceof 则会都给出 true值
console.log(obj0 instanceof A) //true;
console.log(obj0 instanceof B) //true;
//解决construtor的问题通常是让对象的constructor手动指向自己:
obj0.constructor = A; //将自己的类赋值给对象的constructor属性
console.log(obj0.constructor === A) //true;
console.log(obj0.constructor === B) //false; //基类不会报true了;
转载于:https://www.cnblogs.com/alan_peng/p/5887716.html
JavaScript 类型判断的那些事相关推荐
- 手把手带你写一个JavaScript类型判断小工具
业务写了很多,依然不是前端大神,我相信这是很多'入坑'前端开发同学的迷茫之处,个人觉得前端职业发展是有路径可寻的,前期写业务是一个积累过程,后期提炼总结,比如编程思想,父子类的原型继承,还是对象之间的 ...
- JavaScript 类型判断 判断Null和Undefined
js类型判断 判断Null和Undefined javaScript中判断数据类型的方法主要有三种: **typeof:**原理是通过根据变量的机器码来判断 instanceof:根据 构造函 ...
- JavaScript类型判断
JS(ES6)中的基本数据类型:1.数值型(Number):包括整数.浮点数.2.布尔型(Boolean).3.字符串型(String).4.数组(Array).5.空值(Null) .6.未定义(U ...
- 原生JavaScript类型判断
第1问:js中的数据类型有哪些? 1.1 原始数据类型:共有7种 Boolean Number String undefined null Bigint Symbol 1.2 引用数据类型:1种 Ob ...
- 详解JavaScript变量类型判断及domReady原理 写得很好
原文:详解JavaScript变量类型判断及domReady原理 我们知道,在开发JavaScript时候,经常要判断JavaScript变量类型,此 JavaScript教程 详细介绍JS变量的判断 ...
- C#保留2位小数几种场景总结 游标遍历所有数据库循环执行修改数据库的sql命令 原生js轮盘抽奖实例分析(幸运大转盘抽奖) javascript中的typeof和类型判断...
C#保留2位小数几种场景总结 场景1: C#保留2位小数,.ToString("f2")确实可以,但是如果这个数字本来就小数点后面三位比如1.253,那么转化之后就会变成1.25. ...
- JavaScript 学习笔记— —类型判断
//1 判断是否为数组类型var a=[0];console.log(isArray(a));function isArray(obj){return (typeof obj=='object') & ...
- javascript如何判断变量的数据类型
typeof 用法示例 var arr = []; typeof arr; //'object' typeof(arr); //'object' typeof实际上是一个一元运算符,因此可以用上述代码 ...
- 看jquery3.3.1学js类型判断的技巧
需要预习:call , typeof, js数据类型 1. isFunction中typeof的不靠谱 源码: var isFunction = functionisFunction( obj ) { ...
最新文章
- 关于Python 3.9,那些你不知道的事
- python小游戏代码大全-python小游戏实现代码
- Hyperledger Fabric 超级账本的硬伤
- javascript Array方法总结
- python 用户认证_Python使用LDAP做用户认证的方法
- 推荐Datawhale整理的秋招求职攻略
- python将字典写入json文件中
- UVA 11090 Going in Cycle!! 二分答案 + bellman-ford
- php 向py发起请求,Python向PHP发起GET与POST请求
- STM32 避障小车 —— HC-SR04
- python除法运算定律有哪些_小学数学最重要的7个运算定律,都在这里了
- chromecast 协议_如何设置新的Chromecast
- Linux中的基础I/O
- 关于SQL Server中left join on and 用法的介绍
- php 文本域,关于使用文本域(TextArea)的一个问题
- 1367:查找二叉树
- 腾讯云CDB/CynosDB技术揭秘
- 2021-2027全球与中国户外建筑用大理石市场现状及未来发展趋势
- 立体栅格地图_网格Mesh-3D立体图形-教程-地图 JS API | 高德地图API
- 外媒评出全球32家AI独角兽公司:中国占10家