javascript基本数据类型:原始类型  和  引用类型

原始类型(简单数据类型):String,Number,Boolean,Undefined,Null,Symbol(ES6新增)

引用类型(复杂数据类型):Array,Object

 var a = 'hello world';
var b = 100;
var c;
var d = null;
var e = {
name : 'My name is Pelli.'
}
var f = [100,3,'hello',[4,4,67,'hah'],{age : 34}];
var g = function(){
console.log("I am Pelli.");
} console.log(typeof a);//'string'
console.log(typeof b);//'number'
console.log(typeof c);//'undefined'
console.log(typeof d);//'object'
console.log(typeof e);//'object'
console.log(typeof f);//'object'
console.log(typeof g);//'function'

关键方法:typeof,instanceof,constructor,prototype

关键点:

  1. typeof判断的结果,返回值肯定是字符串
  2. typeof判断的结果的返回值一定在以下六个之中,ES6(也称为ES2015)之后新增一个,一共七个
  3. typeof 判断的返回值:string,number,boolean,function,object,undfined,symbol
  4. instanceof运算符详解,参考链接:http://www.zuojj.com/archives/393.html
  5. instanceof运算符可以用来判断某个构造函数的prototype属性是否存在另一个要检测对象的原型链上
  6. instanceof后面的操作数必须是一个对象
  7. 继承中判断实例是否属于它的父类
  8. constructor:构造函数;每个对象都有一个constructor属性,指向该对象的构造函数;
  9. prototype:每个对象都有一个prototype属性,指向该对象的原型对象。

数据类型判断方法:

typeof方法,见上面部分代码;

instanceof方法:返回true或false,适用于引用类型,不适合基本数据类型

var x = [1,2,3,"Pelli","Hello World"];
var y = {
year : 2016,
month : 8
}
var z = function(){} var z1 = 'hello';
var z2 = 123;
var z3 = true;
var z4 = null;
var z5 = undefined; console.log(x instanceof Array);//true
console.log(y instanceof Object);//true
console.log(z instanceof Function);//true console.log(z1 instanceof String);//false
console.log(z2 instanceof Number);//false
console.log(z3 instanceof Boolean);//false
console.log(z4 instanceof Object);//false
console.log(z5 instanceof Object);//false

constructor:

var a1 = 'Pelli';
var a2 = 200;
var a3 = true;
var a4 = null;
var a5 = undefined;
var a6 = {}
var a7 = [1,2];
var a8 = function(){} console.log(a1.constructor === String);//true
console.log(a2.constructor === Number);//true
console.log(a3.constructor === Boolean);//true
console.log(a4.constructor === Object);//Uncaught TypeError:Cannot read property 'constructor' of null...
console.log(a5.constructor === Object);//Uncaught TypeError:Cannot read property 'constructor' of undefined...
console.log(a6.constructor === Object);//true
console.log(a7.constructor === Array);//true
console.log(a8.constructor === Function);//true

prototype

var a1 = 'Pelli';
var a2 = 200;
var a3 = true;
var a4 = null;
var a5 = undefined;
var a6 = {}
var a7 = [1,2];
var a8 = function(){}
console.log(Object.prototype.toString.call(a1) === "[object String]");//true
console.log(Object.prototype.toString.call(a2) === "[object Number]");//true
console.log(Object.prototype.toString.call(a3) === "[object Boolean]");//true
console.log(Object.prototype.toString.call(a4) === "[object Null]");//true
console.log(Object.prototype.toString.call(a5) === "[object Undefined]");//true
console.log(Object.prototype.toString.call(a6) === "[object Object]");//true
console.log(Object.prototype.toString.call(a7) === "[object Array]");//true
console.log(Object.prototype.toString.call(a8) === "[object Function]");//true

相关链接:

http://www.cnblogs.com/mindsbook/archive/2009/09/19/javascriptYouMustKnowPrototype.html

http://blog.sina.com.cn/s/blog_51048da70101grz6.html

http://www.cnblogs.com/yjf512/archive/2011/06/03/2071914.html

javascript数据类型判断的更多相关文章

  1. 关于 JavaScript 数据类型判断

    在 JavaScript 中,有 undefined.null.number.string.boolean 五种基本数据类型,另外,有一种复杂数据类型 object ,类似于 C# 中值类型.引用类型 ...

  2. JavaScript学习总结(2)——JavaScript数据类型判断

    最近做项目中遇到了一些关于javascript数据类型的判断处理,上网找了一下资料,并且亲自验证了各种数据类型的判断,在此做一个总结吧! 一.JS中的数据类型  1.数值型(Number):包括整数. ...

  3. JavaScript数据类型判断的四种方法

    码文不易啊,转载请带上本文链接呀,感谢感谢 https://www.cnblogs.com/echoyya/p/14416375.html 本文分享了JavaScript类型判断的四种方法:typeo ...

  4. JavaScript 数据类型判断

    JavaScript 的数据类型分为两类:原始类型(基本类型)和对象类型(引用类型).原始类型包括数字.字符串和布尔值,另外有两个特殊的原始值:null 和 undefined,除此之外的都是对象.对 ...

  5. javascript 数据类型判断总结

    一 typeof 回顾:js有五种基本数据类型:值类型("number","string","boolean","undefine ...

  6. javaScript数据类型及判断

    ECMAScript数据类型概念: ECMAScript数据类型分为两类:原始类型和对象类型(即基本类型和引用类型): ECMAScript数据类型也可以分为可变类型和不可变类型,数组和对象属于可变类 ...

  7. Javascript 中的数据类型判断

    (迁移自旧博客2017 09 25) typeof 我们常使用typeof来判断数据类型,在常规场景中足以应付数据类型判断的需要: var obj = { name: 'zhangxiang' }; ...

  8. javascript数据类型的判断

    最近看到了很多关于数据类型判断的方法,总结了下 一.javascript的数据类型 js数据分为两种类型:原始数据类型和引用数据类型.原始数据类型有:string.number.boolean.und ...

  9. 请你讲一讲JavaScript有哪些数据类型, 数据类型判断有哪些方法?

    js的8种数据类型 JavaScript中有8种数据类型, 包括基本数据类型(number, string, boolean, null, undefined, symbol, bigint)和引用数 ...

随机推荐

  1. iOS Block简介

    Block是对象,它封装了一段代码,这段代码可以在任何时候执行.block可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值.它和传统的函数指针很类似,但是有区别:block是inli ...

  2. SharePoint 2013 自定义扩展菜单(二)

    接博文<SharePoint 2013 自定义扩展菜单>,多加了几个例子,方便大家理解. 例七 列表设置菜单扩展(listedit.aspx) 扩展效果 XML描述 <CustomA ...

  3. GCD封装的个人理解和应用

    GCD封装的个人理解和应用 特点 >>将GCD封装,使我们从繁琐的方法记忆中解脱出来,能够直接快速的应用. 使用方法 1.将工程中的GCD文件中的9个文件拖入自己的工程中(你自己最好建一个 ...

  4. ReactiveCocoa代码实践之-RAC网络请求重构

    前言 RAC相比以往的开发模式主要有以下优点:提供了统一的消息传递机制:提供了多种奇妙且高效的信号操作方法:配合MVVM设计模式和RAC宏绑定减少多端依赖. RAC的理论知识非常深厚,包含有FRP,高 ...

  5. 二进制配置文件为什么比json等配置文件效率高

    二进制配置文件为什么比json等配置文件高效 项目中用spine做动画,spine可以导出json和二进制的动画配置文件,蛋疼的是spine官方竟然没有提供c的二进制配置解析代码,更没有提供它二进制文 ...

  6. OC load与initialize

    OC load与initialize load 当类被引用进程序的时候会执行这个函数 一个类的load方法不用写明[super load],父类就会收到调用,并且在子类之前. Category的loa ...

  7. 解析UML箭头、线条代表的意义(转)

    在学习UML过程中,你经常会遇到UML类图关系,这里就向大家介绍一下UML箭头.线条代表的意义,相信通过本文的介绍你对UML中箭头.线条的意义有更明确的认识. AD: 本节向大家学习一下UML箭头.线 ...

  8. Ant :DataType

    DataType patternset fileset selector filelist path regexp Ant datatype Ant中,除了Property可以做为Task执行时使用的 ...

  9. EF如何操作内存中的数据以及加载相关联表的数据:延迟加载、贪婪加载、显示加载

    之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需要用的,这个系列讲讲如何使用EF操作数据库.老版本的EF主要是通过Ob ...

  10. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...