javascript toString数据类型检测

一、typeof 是一个一元运算符。检测数据类型,返回一个字符串,包含数据类型信息。例如:“number,string,undefined”

  局限性:

  1、typeof null ===》 “object”

  2、typeof []  ===>  "object"

不能具体检测对象数据类型的细分项(数组、正则...)

二、instanceof 检测某一个实例是否属于这个类

  var ary = [1,2,3,4];

  ary instanceof Array   //如果true,说明ary是Array的一个实例,也就ary是一个数组。反之,返回false则不是一个数组。

  ary.constructor == Array  //通过constructor

  局限性:

  在关于类之间通过原型链的方式实现继承的时候,我们instanceof检测出来的结果不准确。例如:下面的代码:

function Fn(){}
Fn.prototype = new Array;    //Fn继承Array类
var f = new Fn();
console.log(f instanceof Array);  //true
console.log(f.constructor);     //Array

三、toString检测数据类型的原理:执行Object原型上的toString,让这个方法中的this变为我们要检测的那个值,就是实现数据类型的检测

//toString检测数据类型的原理:执行Object原型上的toString方法,让这个方法中的this变为我们要检测的那个值,就是实现了我们的数据类型检测
// Object.prototype.toString = function () {
// return "[object "+this.constructor+"]";
// }

var num = 1;
console.log(Object.prototype.toString.call(num));
console.log({}.toString.call([]));

  

时间: 2024-08-28 21:22:10

javascript toString数据类型检测的相关文章

JS基础(JavaScript三大特点、基本数据类型检测、逻辑运算符的短路运算、几大循环结构的特点)

JavaScript的三大特点 1.js是单线程语言,浏览器只分配给js一个主线程,用来执行任务(函数) 2.JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型. 3.数据类型可以被忽略的语言.一个变量可以赋不同数据类型的值. JavaScript基本数据类型检测 关键字  typeof(变量名或者数据) 用来检测数据类型 typeof对于的值只有六个,分别是: string.number.boolean.object.undefined.functio

JavaScript数据类型检测

一.JavaScript 数据类型 1.基本数据类型(6种) Undefined Null Boolean Number String Symbol (ES6新增) 2.引用数据类型: Object 二.数据类型检测 1. typeof 可以检测除null 外的基本类型.null 和所有对象的typeof都是"object", 不能用于检测用户自定义类型. 比如Date, RegExp, Array, DOM Element的类型都是"object". var s

JavaScript 基本数据类型 与类型检测

一.[JavaScript 基本数据类型] JavaScript 拥有动态类型.这意味着相同的变量可用作不同的类型 "string"   "number"   "object"   "boolean"   "function"   "undefined" <1> string类型 属性: str.length var str = "123,ABC,900,rgy,r

JS-安全检测JavaScript基本数据类型和内置对象的方法

前言:在前端开发中经常会需要用到检测变量数据类型的需求,比如:判断一个变量是否为undefined或者null来进行下一步的操作,今天在阅读“编写高质量代码-改善JavaScript程序的188个建议”这本书的时候看到这个比较好的方法,在此小记一笔以备在以后的开发中使用. 1:如下所示是我编写的演示代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>I

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

JavaScript 学习之第一篇JavaScript的数据类型(2016/8/29 晚 23:12)

1. JavaScript的数据类型 JavaScript 里面有6中数据类型 Boolean String Number Undefined Null Object object(对象)类型包含了数组(arrays) 函数(functions) 以及其他一般对.  数字(Numbers) 类型可以是整型(intergers)或者浮点数(float point)类型以及特殊值NaN 和 Infinity  字符串(Strings)类型包含了空字符串 " ". 布尔值(Booleans)

JavaScript之数据类型

数据类型 JavaScript中有5种简单数据类型(也称为基本数据类型):Undefined.Null.Boolean.Number和String.还有1种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的. typeof操作符 介于JavaScript是松散类型的,因此需要有一种手段来检测给定变量的数据类型——typeof就是负责提供者方面信息的操作符.对一个值使用typeof操作符可能返回下列某个字符串: ● "undefined"——如果这个值未定义: ●

JavaScript引用数据类型

JavaScript引用数据类型 引用类型 在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起(它也常被称为类). Object类型 创建Object实例的方式有两种.第一种是使用new操作符后跟Object构造函数,例如; var person = new Object(); person.name = "Nicholas"; person.age = 29; 另一种方式是使用对象字面量表示法. 例如: var person = { name : "

js 数据类型检测

提起数据类型检测  大多数人首先想起的应该是  typeof 'xxx' == '数据类型' 坦然这种方法对于基本数据类型的检测还是非常方便的,但是当遇到引用数据类型 Object时却爱莫能助,下面就来讲讲这些数据类型的检测方法吧 1.使用typeof方法 首先我们来看看下面的示例将会在控制台打印出什么 //检测方法 //输出类型 typeof function(){} ====> ‘function’ typeof "" ====> 'string' typeof 545