Object.prototype.toString.call() 区分对象类型

在JavaScript中数据类型分为:1.基本类型,2.引用类型

  1. 基本类型:Undefined,Boolean,String,Number,Null
  2. 引用类型:Object (Array,Date,RegExp,Function)

var a = 'hello world';
var b = [];
var c = function(){};
  • 1
  • 2
  • 3

我们用不同的判断类型的方法来判断上面三个变量的类型;(编译工具webStorm,浏览器Chrome) 
1.首先:typeof( )

1.console.log(typeof (a)+';'+typeof (b)+';'+typeof (c))
输出:string;object;function
  • 1
  • 2

2.其次:instanceof

console.log(a instanceof Object)    //false
console.log(b instanceof Object) //true
console.log(c instanceof Object) //true
console.log(a instanceof Array) //false
console.log(b instanceof Array) //true
console.log(c instanceof Array) //false
console.log(a instanceof Function) //false
console.log(b instanceof Function) //false
console.log(c instanceof Function) //true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

从上面两个例题可以看出,typeof(),insctanceof,这两种方法都只能对简单的变量进行判断,如果比较复杂的变量判断时就会有误,不精确; 
下面我们介绍Object.prototype.toString.call()方法; 
3.Object.prototype.toString.call()

console.log(Object.prototype.toString.call(a))
console.log(Object.prototype.toString.call(b))
console.log(Object.prototype.toString.call(c))
输出:
[object String]
[object Array]
[object Function]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

可以写个方法传值进入判断:

function isType(obj,type){
if(obj != ''){
return Object.prototype.toString.call(obj)==='[object '+type+']'
}else{
alert('对象不能为空')
}
}
console.log(isType('hello world','String')) //true

JS区分对象类型的更多相关文章

  1. js验证对象类型

    js验证对象类型 1. Object.prototype.toString.call() 这是最佳解决方案,可以用作通用方式处理.各种类型的判断依据类似于[object Object],替换的是后边的 ...

  2. Object.prototype.toString.call() 区分对象类型

    判断一个对象的类型: /** * 判断对象是否为数组 * @param {Object} source 待判断的对象 * @return {Boolean} true|false */ Object. ...

  3. JS判断对象类型

    对于确定JS内置对象类型,JS提供了typeof运算符,该运算符得到的结果为以下6种:number,boolean,string,function,object,undefined.不过对绝大多数对象 ...

  4. Object.prototype.toString.call() 区分对象类型(判断对象类型)

    在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种.对于数组. ...

  5. javascript 区分对象类型

    在 JavaScript 里使用 typeof 来判断数据类型,只能区分基本类型,即 “number”,”string”,”undefined”,”boolean”,”object” 五种.对于数组. ...

  6. js 判断对象类型

    在企业级的开发中,我们常用 typeof 来判断企业 对象类型:但是 typeof 不能判断 Array 和 null 这里我们使用一个 原型上的 toString方法:请看一下代码: <scr ...

  7. js接收对象类型数组的服务端、浏览器端实现

    1.服务端 JSONArray jsonArr = JSONUtil.generateObjList(objList); public static generateObjList(List<O ...

  8. JS 之Blob 对象类型

    原文 http://blog.csdn.net/oscar999/article/details/36373183 什么是Blob? Blob 是什么? 这里说的是一种Javascript的对象类型. ...

  9. js 的强制 类型 转换cast, 伪对象?

    拼音输入法简单快捷, 但是重码多, 所以要看清了再选择, 不然会影响输入正确性和 心情的! js的类型 隐式 转换? 是指, 根据 表达式的操作符号 如if(), + , && , j ...

随机推荐

  1. maven配置及IDEA配置maven环境

    一. maven的下载及配置 1. maven下载地址 可以在网址:https://maven.apache.org/download.cgi下载最新版本的maven 2. maven文件解压缩 解压 ...

  2. JAVA进阶15

    间歇性混吃等死,持续性踌躇满志系列-------------第15天 1.TCP网络程序 package code0329; import java.io.BufferedReader; import ...

  3. 贯穿RobotFramework框架 - 关键字(一) 最全面的疏理

    在RF中,关键字是一个非常重要的存在.想做任何事情,都是通过关键字来实现的. 这篇文章对RobotFramework中的关键字做个整理.大概分为以下几点内容: 1.什么是关键字 2.关键字来自哪里.有 ...

  4. bently addin 二次开发学习

    元素结构: 一些基本元素的添加与绘制: class CreateElement { public static void LineAndLineString() { Application app = ...

  5. mysql常用

    查询表占用大小 select sum(DATA_LENGTH)+sum(INDEX_LENGTH) from information_schema.tables where table_schema= ...

  6. 怎么编辑PDF文件内容,PDF文件编辑方法

    怎样编辑PDF文件内容?这是一个常常困扰我们的问题,工作当中我们经常会收到PDF格式的文件,但有时的文件内容不是我们想要的或者是觉得不合理的需要改掉.但是每次有这样的问题时都没有什么好的解决方法,每次 ...

  7. MySQL日志专题

    查询所有的日志开启.关闭.输出位置等状态的SQL mysql> SHOW GLOBAL VARIABLES LIKE '%log%'; 1.查询日志:记录查询操作: 保存方式:文件(file)或 ...

  8. TCP和UDP的区别以及使用python服务端客户端简单编程

    一.TCP.UDP区别总结 1.TCP面向连接(如打电话要先拨号建立连接):UDP是无连接的,即发送数据之前不需要建立连接 2.TCP提供可靠的服务,也就是说,通过TCP连接传送的数据,无差错,不丢失 ...

  9. UWP 调用Win32 关机

    话说最近程序需要个晚上自动关机的功能 原则上 uwp 应该是没有关机权限的 上网搜索之 有人说只要这样就可以了 var psi = new ProcessStartInfo("shutdow ...

  10. PHP实现多维数组按指定值排序

    主要用到的PHP函数 array_multisort() .先实现指定多维数组一个字段排序 根据二维数组的id值来排序,转换后的数组格式如下: function arraySortByOneField ...