美文网首页
js的数据类型

js的数据类型

作者: yanmuxiao | 来源:发表于2017-06-03 11:53 被阅读0次

一、js的数据类型

Null、Undefined、Boolean、Number、String、Array、Object

还能叫得出名字的还有:NaN(Not a Number)、正则(RegExp)、日期(Date)、函数(Function)、arguments等等,其中NaN属于Number类型,正则、日期、函数、arguments属于Object,感觉js的数据类型有点乱。

二、js数据类型的分类:值类型、引用类型

// 值类型

console.log(typeof(x));    // undefined

console.log(typeof(10));  // number

console.log(typeof('abc')); // string

console.log(typeof(true));  // boolean

console.log(typeof (null));  //object ==> 结果是object,但是属于值类型

// 引用类型

console.log(typeof(function () { }));  //function

console.log(typeof([1, 'a', true]));  //object

console.log(typeof ({ a: 10, b: 20 }));  //object

console.log(typeof (new Number(10)));  //object

typeof对js数据的判断结果共有6种:

undefined, number, string, boolean, function, object

1、分类:

简单的值类型(不是对象):null、undefined、boolean、number、string。

复杂的引用类型(是对象):函数、数组、对象、new Number(10)、new String('10')、new Boolean(true)、正则、日期等等。

2、为什么说null不是对象呢?typeof null 的值不是object吗?

a. 它老祖宗都不认他。

console.log(null instanceof Object); // false

b. 对象的定义是:若干属性的集合,而null不符合对象的定义,不是引用类型。

var nullType = null;

nullType.a = 123; // 报错 ==> Unexpected token .

综上:null不是一个对象,不是复杂的引用类型。null最初是用来表示空对象的,但是不属于对象。typeof对null的判断是js的一个bug。

三、如何判断一个变量的数据类型

1、值类型的类型判断用typeof

// 值类型

console.log(typeof(x));    // undefined

console.log(typeof(10));  // number

console.log(typeof('abc')); // string

console.log(typeof(true));  // boolean

//虽然function也是一个引用类型对象,但是可以通过typeof判断:

var fn = function() {};

console.log(typeof fn); // function

如何判断null类型?用 ===:

console.log(null === null); // true

不能用 == ,因为:

console.log(null == undefined); // true

console.log(null === undefined); // false

2、引用类型的类型判断用instanceof

//引用类型

console.log(new String('string') instanceof String); // true

console.log(new Number(10) instanceof Number); // true

console.log(new Boolean(true) instanceof Boolean); // true

console.log(new Array(3,4,5) instanceof Array); // true

console.log([] instanceof Array); // true

var fn = function() {}

console.log(fn instanceof Function); // true

相关文章

  • JS的类型转换

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

  • js入门知识点

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

  • js数据类型

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

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

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

  • js深拷贝

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

  • JS数据类型判断

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

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

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

  • JS 高频面试题汇总

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

  • js常见知识点

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

  • Js数据类型

    Js数据类型 Js的七种数据类型:number string boolean symbol undefin...

网友评论

      本文标题:js的数据类型

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