判断数据类型instance of type of object.prototype.tostring 区别

typeof

typeof 是一个操作符,其右侧跟一个一元表达式,并返回这个表达式的数据类型。

返回的结果用该类型的字符串(全小写字母)形式表示,包括以下 6 种:

number、boolean、string、object、undefined、symbal 、function。

typeof 对于对象,除了函数都会显示 object

对于 null 来说,虽然它是基本类型,但是会显示 object,这是一个存在很久了的 Bug

instance of

instanceof 是用来判断 A 是否为 B 的实例,

表达式为:A instanceof B,

例:arr instanceof Array

如果 A 是 B 的实例,则返回 true,否则返回 false。

在这里需要特别注意的是:instanceof 检测的是原型。

Object.prototype.toString.call

toString 是 Object 原型对象上的方法,

使用 call 来调用该方法会返回调用者的类型字符串,格式为 [object,xxx],xxx 是调用者的数据类型,

包括:String、Number、Boolean、Undefined、Null、Function、Date、Array、RegExp、Error、HTMLDocument 等,

基本上,所有的数据类型都可以通过这个方法获取到。

Object.prototype.toString()返回[object class], 我们可以通过它获取对象的类型信息

eg:[object Array]

toString() 获取某个类型的数据的类型

valueof() 获取某个类型的数据的值

ES6   Symbol.toPrimitive

Symbol.toPrimitive被调用时,会接受一个字符串参数,表示当前运算的模式,一个有三种模式。 该方法在转基本类型时调用优先级最高

  • Number:该场合需要转成数值
  • String:该场合需要转成字符串
  • Default:该场合可以转成数值,也可以转成字符串。

比较运算符

  1. 如果是对象,就通过 toPrimitive 转换对象

  2. 如果是字符串,就通过 unicode 字符索引来比较

new

  1. 新生成了一个对象

  2. 链接到原型

  3. 绑定 this

  4. 返回新对象

在调用 new 的过程中会发生以上四件事情,我们也可以试着来自己实现一个 new

原文地址:https://www.cnblogs.com/katydids/p/9955964.html

时间: 2024-08-09 03:43:53

判断数据类型instance of type of object.prototype.tostring 区别的相关文章

利用Object.prototype.toString.call(obj)判断数据类型

1.typeof判断数据类型 typeof可以用来判断基本数据类型,对于Array.Error.RegExp.Number.Function只能判断为object 2.使用Object.prototype.toString.call(obj)判断数据类型 var a=new Number(12); var toString=Object.prototype.toString; console.log(toString.call(a));//[object Number] console.log(

JavaScript类型判断详解(Object.prototype.toString.call()方法进行数据类型的可靠判断)

前言 在编写一些类库中,我们经常需要判断一些未知的用户的输入和配置,故而需要进行一系列的类型判断.故而总结下JS是如何进行类型判断的 typeof typeof操作符返回一个字符串,表示未经计算的操作数的类型:该运算符数据类型(返回字符串,对应列表如图) typeof undefined = undefined typeof Null = object typeof Boolean = boolean typeof Number = number typeof String = string t

数据类型的判断 --Object.prototype.toString.call(obj)精准检测对象类型

数据类型的判断 typeof typeof返回一个表示数据类型的字符串,返回结果包括:number.boolean.string.symbol.object.undefined.function等7种数据类型,但不能判断null.array等 typeof Symbol(); // symbol 有效 typeof ''; // string 有效 typeof 1; // number 有效 typeof true; //boolean 有效 typeof undefined; //undef

js精确判断数据类型为何用Object.prototype.toString.call()而不是Object.prototype.toString()

有何区别,为何一定要通过call. 我们知道call是用来改变函数作用域的,Object.prototype.toString.call在这儿也是用来改变作用域的. Object.prototype.toString()  在toString方法被调用时,会执行下面的操作步骤(参考): 1. 获取this对象的[[Class]]属性的值. 2. 计算出三个字符串"[object ", 第一步的操作结果Result(1), 以及 "]"连接后的新字符串. 3. 返回第

JavaScript的数据类型都有什么? JavaScript中 toStirng() 与 Object.prototype.toString().call()

JavaScript的数据类型都有什么? (via  BAT互联网公司2014前端笔试面试题:JavaScript篇  http://www.sxt.cn/u/756/blog/4508) 基本数据类型:String,boolean,Number,Undefined, Null 引用数据类型: Object(Array,Date,RegExp,Function) 疑问:这些基本的数据类型的值都是常量,而常量是没有方法的,为什么能够调用方法呢?答案是这样的,五种基本类型除了null.undefin

判断对象类型 typeof instanceof Object.prototype.tostring()

常见的有三种方法  1, typeof  2, instance of   3, object.prototype.toString.apply(); 1,typeof  typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串.如:"number","string","boolean","object","function","undefined"(可用于

类型判断----小白讲解typeof,instanceof,Object.prototype.toString.call()

1.typeof只能判断基本类型数据, 例子: typeof 1 // "number" typeof '1' // "string" typeof true // "boolean" typeof {} // "object" typeof [] // "object" typeof function(){} // "function" typeof undefined // &quo

js中通过Object.prototype.toString方法----精确判断对象的类型

判断是否为函数 function isFunction(it) {        return Object.prototype.toString.call(it) === '[object Function]';    } 判断是否为数组: function isArray(o) {   return Object.prototype.toString.call(o) === '[object Array]';  } 由于 JavaScript 中一切都是对象,任何都不例外,对所有值类型应用

【JavaScript】Object.prototype.toString.call()进行类型判断

权声明:本文为博主原创文章,未经博主允许不得转载. [javascript] view plain copy print? op = Object.prototype, ostring = op.toString, ... function isFunction(it) { return ostring.call(it) === '[object Function]'; } function isArray(it) { return ostring.call(it) === '[object A