• javascript数据类型判断


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

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

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

     1 var a = 'hello world';
     2 var b = 100;
     3 var c;
     4 var d = null;
     5 var e = {
     6     name : 'My name is Pelli.'
     7 }
     8 var f = [100,3,'hello',[4,4,67,'hah'],{age : 34}];
     9 var g = function(){
    10     console.log("I am Pelli.");
    11 }
    12 
    13 console.log(typeof a);//'string'
    14 console.log(typeof b);//'number'
    15 console.log(typeof c);//'undefined'
    16 console.log(typeof d);//'object'
    17 console.log(typeof e);//'object'
    18 console.log(typeof f);//'object'
    19 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

  • 相关阅读:
    关于xcode 9.0数组问题的遇到的坑
    PHP将emoji表情进行过滤
    iOS 11更新后以及iPhone X推出后工程中遇到的问题及适配
    在IOS11中position:fixed弹出框中的input出现光标错位的问题
    采用腾讯云直播断流续播相关问题
    论坛灌水机与注册机问题
    以下内容对于灵活修改textField中文本以及占位文本属性进行了完整的封装,加入项目中可以节约开发时间。
    JS基础语法---总结
    JS基础语法---创建对象---三种方式创建对象:调用系统的构造函数;自定义构造函数;字面量的方式
    JS基础语法---编程思想和对象
  • 原文地址:https://www.cnblogs.com/pelli/p/5824333.html
Copyright © 2020-2023  润新知