zoukankan      html  css  js  c++  java
  • JavaScript类型判断typeof和instanceof

    原始类型存在堆中,引用类型存在栈中,引用类型存的是指向对象内存的指针。

    原始类型有5个:undefined、null、string、boolean、number

    JavaScript提供了typeof方法来判断值类型,原始类型对应的结果是undefined、object、string、boolean、number(typeof null 结果是object,这本是个历史错误但沿用成习惯),Function类型typeof的结果是function,其他引用类型的typeof结果皆为object。

     1                 var a = null;   //obejct
     2                 var b ;         //undefined 
     3                 var c = "abc";  //string
     4                 var d = true;   //boolean
     5                 var f = 1;      //number
     6                 var g = {};     //object
     7                 var h = [];     //object
     8                 var i = /s/;   //object
     9                 var j =function(){}; //function
    10 
    11                 console.log(typeof a);
    12                 console.log(typeof b);
    13                 console.log(typeof c);
    14                 console.log(typeof d);
    15                 console.log(typeof f);
    16                 console.log(typeof g);
    17                 console.log(typeof h);
    18                 console.log(typeof i);
    19                 console.log(typeof j);

    引用类型通常理解成类,Object可以说是所有类的基类。JavaScript中并没有显式出现类,叫对象。

    本地对象

    • Object
    • Function
    • Array
    • String
    • Boolean
    • Number
    • Date
    • RegExp
    • Error
    • EvalError
    • RangeError
    • ReferenceError
    • SyntaxError
    • TypeError
    • URIError

    内置对象

    • Global
    • Math

    宿主对象

    • BOM和DOM的对象

    instanceof判断对象实例

     要判断不同对象,typeof已经无能为力了,到了instanceof的用武之地,它用来判断一个对象是否是另一个对象的实例。

    1                 console.log(new Object() instanceof Object);
    2                 console.log(new Function() instanceof Function);
    3                 console.log(new Array() instanceof Array);
    4                 console.log(new String() instanceof String);
    5                 console.log(new Boolean() instanceof Boolean);
    6                 console.log(new Number() instanceof Number);
    7                 console.log(new Date() instanceof Date);
    8                 console.log(new RegExp() instanceof RegExp);

    上面显然结果都是true,此外除Object之外的所有对象instanceof Object都是true。

    如果是自定义对象,instanceof自己和父类结果都会是true。父类指的是通过原型链继承的,可见我的JavaScript面向对象初探——封装和继承

  • 相关阅读:
    (二)Spring Security 入门体验之——用户密码配置
    (一)Spring Security 入门体验
    (十二)权限之RBAC
    (十一)jwt详解
    (十)登录拦截器之前后端
    (九)优化登录页面
    (八)前后端整合之跨域问题
    SecureCRT 8.1.4 破解教程
    centOS配置网络(6.8)securCRT连接虚拟机
    二叉树的下一个节点(给定一棵二叉树的其中一个节点,请找出中序遍历序列的下一个节点)
  • 原文地址:https://www.cnblogs.com/feitan/p/5118324.html
Copyright © 2011-2022 走看看