美文网首页
js数据类型

js数据类型

作者: 土豪码农 | 来源:发表于2017-03-10 13:09 被阅读0次

js中的数据类型有两种,一种是基本(简单)数据类型 ,
还有一种是复杂(复合,引用)数据类型;

简单数据类型

  • string 字符串
  • number 数值(整数|小数|NaN)
  • boolean 布尔类型的值 true + false
  • null 空(对象)
  • undefined 没有定义
  • symbol (标志吧)es6新增

复杂(复合)数据类型

  • Oject 对象类型(js中所有的复杂数据类型都是基于objct)
  • Array 数组类型
  • Date 日期类型
  • Function 函数类型
  • RegExp 正则表达式
  • String 字符串对象(基本包装类型)
  • Number 数值对象
  • Boolean 布尔值对象

如何判断数据类型 typeof

  • typeof 字符串(string) 数值 (number) true|false(boolean) undefined (undefined)
  • typeof null object(null是obejct是个意外,js采用2进制存储变量,第一版的js判断是否是object是根据前三位,null全都是0,自然被判断成对象)
  • typeof 复杂数据类型 都是object (除了函数function之外)
  • typeof本身是操作符不是函数
  • typeof返回值string类型
  • typeof undefined 和 typeof一个未定义的变量都是结果都是undefined是出于一种保护机制,防止阻塞代码
  *  undefined和is not defined,前者是声明不赋值,后者是不申明
    var a;
    console.log(typeof b); //undefined
    console.log(typeof a); //undefined
  • 判断对象,除了function,其他都是object那么如何区分呢,可以用instanceof

instanceof

    console.log([] instanceof Array);  //true
    console.log(new String('2') instanceof String); //true
    console.log(new Number(2) instanceof Number);  //true
    console.log(new Boolean(true) instanceof Boolean);  //true
    console.log(function fn() {} instanceof Function);  //true
  • 记得一个小题目,之前面试官问我如何判断空数组[]和空对象{}
    //通过toString
    console.log([].toString()); //数组的toString等于join(',')会用逗号连接里面每个元素
    console.log(({}).toString());  //对象的toString则是显示对象类型[object Object]
    //通过借用Object上面的toString
    console.log(Object.prototype.toString.call([])); //[object Array]
    console.log(Object.prototype.toString.call({})); //[object Object]
    //查看length
    console.log([].length); //0
    console.log({}.length); //undefined
  • 通过上面的题目,我们可以发现还有一种办法判断对象类型
    console.log(Object.prototype.toString.call([]));  //[object Array]
    console.log(Object.prototype.toString.call({}));  //[object Object]
    console.log(Object.prototype.toString.call(function () {}));  //[object Function]
    console.log(Object.prototype.toString.call(new String('a')));  //[object String]
    console.log(Object.prototype.toString.call(new Number(1)));  //[object Number]
    console.log(Object.prototype.toString.call(new Boolean(true)));  //[object Boolean]

相关文章

  • JS的类型转换

    JS的数据类型: 首先, JS的数据类型分为基本数据类型和引用数据类型基本数据类型: string number ...

  • js对象数组的深拷贝方法以及其他方法

    js判断数据类型是否为对象 js判断数据类型是否为数组

  • 2022前端面试题汇总(附答案)更新中

    JS相关 1.JS中的数据类型 (1)数据类型分为基本数据类型和引用数据类型基本数据类型:number、null、...

  • js深拷贝

    在写深拷贝之前,有必要说一下js的数据类型 一.js数据类型 1.1 分类 js数据类型分为两类:原始数据类型、引...

  • js数据类型

    JS基本数据类型和引用数据类型(JS 基本数据类型和引用数据类型的区别及浅拷贝和深拷贝) 再讲 js 的基本数据类...

  • js入门知识点

    * 基础知识 * js的输出方式 * js的组成 * js的命名规范 * 数据类型 * number数据类型 * ...

  • js常见知识点

    一、 js基本数据类型和引用数据类型 js基本数据类型:Number、String、Boolean、Null、un...

  • JS数据类型判断

    js中可以通过typeof来判断基本的数据类型。 数据类型 js的数据类型分为基本数据类型和引用数据类型,基本数据...

  • JS 高频面试题汇总

    # 说一下JS 中的数据类型有哪些 JS 数据类型包括 基本 / 引用 / 特殊 数据类型: 基本数据类型:Str...

  • 浅拷贝和深拷贝

    JS数据类型 在JS语言中,数据类型分为以下两种: 基本数据类型:null undefined number st...

网友评论

      本文标题:js数据类型

      本文链接:https://www.haomeiwen.com/subject/hcingttx.html