数据类型检测的四种方式

/*typeof:检测数据类型的运算符
返回的都是一个字符串
类型:number string boolean undefined function object*/
console.log(typeof 12);
console.log(typeof "14");
console.log(typeof undefined);
console.log(typeof function text(){});
console.log(typeof null);//空对象指针
/*instanceof:检测实例是否属于某一个类
只要在原型链上,结果都为true
局限性:原型链*/
console.log(1 instanceof Number);//f
console.log(new Number(1) instanceof Number);//t

/*constructor:构造函数
基本数据类型的可以检测
局限性:原型如果被重写,检测的结果很不准确*/
var num=1;
console.log(num.constructor==Number);
function Fn(){

}
Fn.prototype=new Array();
//Fn.prototype.constructor=Fn;
var f=new Fn();
console.log(f.constructor);
console.log(Object.prototype.toString.call(f.constructor));
console.log(‘---------‘);
/*null undefined他们所属类是Null和Undefined*/
/*Object:函数数据类型(in hasPrototyOf)
最准确的检测方式*/
//toString专题
//Object.prototype.toString();
console.log(typeof (1).toString());
//Number.prototype.toString 字符串
console.log((1).__proto__.__proto__.toString());
console.log(Object.prototype.toString.call(1));
console.log({}.toString.call(1));
//Object.prototype.toString => [object Object]
//Math,Object的toString当前方法的执行主体(this)所属类的执行信息=>[object Object] [object Math]
var obj={name:‘qiqi‘};
console.log(obj.toString());
/*[object Object] 第一个object是当前实例是对象数据类型的,第二个Object是obj所属类是Object*/
console.log(Math.toString());//=>"[object Math]";

原文地址:https://www.cnblogs.com/qiqi105/p/8297894.html

时间: 2024-08-06 11:03:44

数据类型检测的四种方式的相关文章

js学习总结----数据类型检测的四种方式(转载)

1.typeof 用来检测数据类型的运算符 console.log(typeof 12)//Number 使用typeof检测数据类型,首先返回的都是字符串 ,其次字符串中包含了对应的数据类型 例如:"number"."string"."boolean"."undefined"."function"."object" console.log(typeof typeof function(

数据类型检测的几种方式

1.typeof 缺点:对null和Array等类型的检测不是很方便 Js代码   1 typeof null; //"object" 2 typeof []; //"object" 2.instanceof 缺点:1.只适用于对象类型 2.只要当前的这个类在实例的原型链上,检测出来的结果都是true Js代码   123 instanceof Number; //false null instanceof null; //TypeError null instan

struts2访问国际化消息的四种方式

Struts2的国际化是建立在java国际化的基础之上的,因此具有强大的国际互能力.Struts2运行时自动检测当前的 Location,然后使用RsourceBundle加载对应的Locale资源文件.因为Struts2对java的国际化进行了封装,因此国际化起来更简单,用户一般提供不同国家的消息资源即可.在Struts2的国际化包含三个部分:前台的国际化,Action中的国际化,验证配置文件的国际化. 在Struts2中加载全局资源文件 国际化的前提是如何让Struts2能够加载到国际化消息

Android中多线程的使用四种方式最全总结

当我们启动一个App的时候,Android系统会启动一个Linux Process,该Process包含一个Thread,称为UI Thread或Main Thread.通常一个应用的所有组件都运行在这一个Process中,当然,你可以通过修改四大组件在Manifest.xml中的代码块(<activity><service><provider><receiver>)中的android:process属性指定其运行在不同的process中.当一个组件在启动的

IOS数据本地存储的四种方式--

注:借鉴于:http://blog.csdn.net/jianjianyuer/article/details/8556024 在IOS开发过程中,不管是做什么应用,都会碰到数据保存问题.将数据保存到本地,能够让程序更加流畅,不会出现让人厌恶的菊花状,使得用户的体验更好.下面是介绍数据保存的方式 第一.NSKeyedArchiver:采用归档的形式来保存数据.(归档——解档)———大量数据和频繁读写不合适使用 1.归档器的作用是将任意的对象集合转换为字节流.这听起来像是NSPropertyLis

[转]JSon数据解析的四种方式

转至http://blog.csdn.net/enuola/article/details/7903632 作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此"http://www.bejson.com/"网站来进行JSON格式化校验(点击打开链接).此网站不仅可以检测Json代码中的错误,而且可以以视图形式显示json中的数据内容,很是方便. 从IOS5开始,APPLE提供了对json的原生支持(NSJSONS

java解析xml文件四种方式介绍、性能比较和基本使用方法

一.介绍: 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的.DOM以及广义的基于树的处理具有几个优点.首先,由于树在内存中是持久的,因此可以修改它以便应用程序能对数据和结构作出更改.它还可以在任何时候在树中上下导航,而不

Android——数据存储(四种方式之一)SharedPrefereces

Android--数据存储(四种方式) 1.SharedPrefereces   轻量级.XML  存储文件名,数据保存在data/data/basepackage/shared_prefs/myopt.xml中   实例-收藏-记住密码自动登录 //一种轻量级的数据存储方式//通过KEY 存入数据--putxxxx(key,value) 取出数据--getxxxx(key  default)   2.读写SD卡  SD的根目录  适用于数据流读写 3.SQLite  轻量级.dp文件多用于手机

JAVA中集合输出的四种方式

在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public static void main(String[] args) throws Exception { Set<Person> javaProgramers = new HashSet<Person>(); javaProgramers.add(new Person("aaron&qu