深入浅出Javascript:类型

Javascript 的类型

6种原型数据类型

js有6种原型数据类型( null,undefined,boolean,number,string,Symbol

null – 空

  • null只有null一个值,表示一个空对象指针。一般用来初始化变量(即先定义出一个变量,在此之后用于保存对象)。

  • 在Javascript的运行环境里不会产生null值,除非你在代码中有显式的赋值(通常情况下你得到的会是undefined而不是null,只有一个例外就是document.getElementById,它会在找不到元素的情况下返回null)。有节制的使用undefined来替代null会更容易追踪bug。

var as = null;//undefined
console.log(as);//null
  • 访问它的任何属性都会失败。

null.asd
//Uncaught TypeError: Cannot read property 'asd' of null(…)
  • null无法装箱(把基本数据类型转换为对应的引用类型的操作称为装箱,把引用类型转换为基本的数据类型称为拆箱)。

undefined – 未定义

  • 当访问一个对象中不存在的属性时就会得到一个undefined。

document.nonexistent  //undefined
  • 访问它的任何属性也都会失败。

undefined.asd
//Uncaught TypeError: Cannot read property 'asd' of null(…)
  • undefined无法装箱。

string – 字符串

  • ‘asd’,”asd”(使用单引号和双引号均可)。

  • 字符串在作为String的实例时会进行装箱操作(new String('asd');)。

number – 数字

  • 例如:5,3e+10(所有数字都是浮点型的,尤其是分数,但是可以用x >>> 0来取出整数位)。

  • 数字在作为Number的实例时会进行装箱操作。

boolean – 布尔

  • 有2个值(true和false)。

  • 布尔类型在作为Boolean的实例时会进行装箱操作。

symbol – 布尔

Symbol ( 在 ECMAScript 6 中新添加的类型)。一种数据类型,它的实例是唯一且不可改变的。

另外3种基于Object对象的引用类型

object – 对象

  • 例如:{foo: ‘bar’, bif: [1, 2]},是真正的哈希表。

  • 总是会装箱。

  • 是Object的实例。

function – 函数

  • 例如:function(x) { return x + 1;}。

  • 必定装箱。

  • Function的实例。

array- 数组

  • 例如:[1, 2, “foo”, [3, 4]]。

  • 总是会进行装箱。

  • 是Array的实例。

RegExp – 正则表达式

  • 例如:/foos*([bar]+)/。

  • 总是会装箱。

  • 是RegExp的实例。

判定类型

由于js是松散类型(数据类型具有动态性),我们一般用typeof来鉴定 变量的值 的类型。

对一个值使用typeof可能返回

  • undefined(未定义)

  • boolean(布尔)

  • string(字符串)

  • number(数值)

  • object(对象或null)【typeof null会返回object,因为特殊值null会被认为是一个空对象的引用】

  • function(函数)

    原文作者:幸运儿
    原文地址: https://segmentfault.com/a/1190000005004937
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞