一次搞定js类型判断

对于一些灵活或者通用的函数,需要根据输入的参数类型,来执行一些逻辑,或简单的报错。因此准确的判断数据类型就尤为重要。

第一种方式,也是最容易想到的方式,typeof。它可以很容易的判断出大部分数据的类型,然而array和null会被误判为object类型。

第二种方式,instanceof,然而它的判断逻辑是基于实例的,跨实例或非实例则会出现问题,而且修改_proto_会影响判断结果。

第三种方式,也是最推荐的一种,Object.prototype.toString.call()

function isType(type, target){
   var str = Object.prototype.toString.call(target); // [object  Xxx]
   return str.indexOf(type)!=-1?true:false;
}
// 注意类型的首字母为大写
isType(‘Array‘, []);  // true
isType(‘Null‘, null);  // true

  

原文地址:https://www.cnblogs.com/diyichen/p/11306246.html

时间: 2024-09-30 07:17:46

一次搞定js类型判断的相关文章

js类型判断及鸭式辨型

目录 instanceof constructor 构造函数名字 鸭式辨型 三种检测对象的类方式: instanceof.constructor .构造函数名字 用法如下: 1)instanceof console.log([1,2,3] instanceof Array); true console.log([1,2,3] instanceof Object); true 尽管构造函数是原型的唯一标识,instanceof运算符的右操作数是构造函数,instanceof实际计算过程中检测的是对

看jquery3.3.1学js类型判断的技巧

需要预习:call , typeof, js数据类型 1. isFunction中typeof的不靠谱 源码: var isFunction = function isFunction( obj ) { // Support: Chrome <=57, Firefox <=52 // In some browsers, typeof returns "function" for HTML <object> elements // (i.e., `typeof d

js类型判断

js类型有:字符串.数字.布尔.数组.对象.null.undefined. typeof console.log(typeof "a"); //string console.log(typeof 1); //number console.log(typeof true); //boolean console.log(typeof []); //object console.log(typeof new {}); //object console.log(typeof null); //

JS类型判断typeof PK {}.toString.call(obj)

参考链接:https://www.talkingcoder.com/article/6333557442705696719 先看typeof <!doctype html> <html lang="en">     <head>         <meta charset="UTF-8" />         <script type="text/javascript" src="&

js 基础复习 之 js 类型判断

ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型. 1.基本类型 基本的数据类型有:`undefined,boolean,number,string,null.基本类型的访问是按值访问的,就是说你可以操作保存在变量中的实际的值.基本类型有以下几个特点: 1.基本类型的值是不可变得: 1.任何方法都无法改变一个基本类型的值. var name = 'hello'; name.toUpperCase(); // 输出 'HELLO' console.log(name); // 输出

JavaScript的8行代码搞定js文件引入问题

单页面的操作,免不了会有各种jsp的嵌套问题,一个操作页面里面可能涉及到几十甚至上百个jsp页面. 平常我们对用到的js文件的引入,都会放到index的header里面.如图: 但是,让我们思考三个问题: 1.当业务需要,用到iframe的时候,那么iframe页面将不能再直接调用index引入的js文件 2.假如我这个项目有100个jsp页面,有一个js文件只有其中一个jsp要使用,我将这个js放到index的header区,每次一加载项目都会加载它,是不是延长了项目加载时间. 3.针对问题二

两行代码搞定js对象深浅拷贝

有一段时间没有更新博客了,忙于工作.2018年刚过去,今天来开启2018第一篇博文.好了,咱们步入正题. 先上代码 /** * 遍历对象 * 1.判断是不是原始值 * 2.判断是数组还是对象 * 3.建立相应的数组或对象 * 递归 */ var obj= { name:"aaa", age:23, hobby:["basketball","music","coding"], lover:{ name:"aaa&quo

js类型判断的方法

var arr=[]; alert(Object.prototype.toString.call(arr)=='[object Array]');

《饿了么大前端 Node.js 进阶教程》—Javascript 基础问题—类型判断

lodash的类型判断源码 <饿了么大前端 Node.js 进阶教程>地址:https://github.com/ElemeFE/node-interview  lodash介绍:lodash是目前很流行的JS工具库,它封装了许多JS常用到的工具方法,在阅读源码时,你会发现代码冗长:官网说这是性能优化,不管你信不信,反正我信了! (1)null 类型 function isNull(value) { return value === null; } (2)number类型 function i