数据类型

数据类型的分类

JSES 5.1中共有六种数据类型:

  • string:字符串类型
  • number:数值类型
  • boolean:布尔类型,发明该类型的人叫布尔,出于纪念和尊敬
  • undefinedundefined类型,该值表示一个量被创建但却没有赋值
  • nullnull类型,该值的本质是一个引用地址,但是该引用地址指向一个空值
  • object:对象类型、引用类型
    • Object
    • Function
    • Array
    • Date
    • String
    • Number
    • Boolean

在以上六种类型当中,string、number、boolean、undefined、null为值类型,这些值具备静态特性,引擎会把它们存储在栈(stack)当中;object为引用类型,该类型的数据存在堆(heap)当中。

当我们进行数据传递(赋值、传参、返回值)时,值类型是将该数据的值进行传递,而引用类型是将该数据的引用地址(指针)进行传递。值的传递我们称之为深拷贝,引用地址的传递我们称之为浅拷贝。

typeof操作符可以查看数据的基本类型,typeof返回类型的字符串表示,typeof本身存在缺陷,如下表所示:

特殊的:

typeof string -> string

typeof number -> number

typeof boolean -> boolean

typeof undefined -> undefined

typeof null -> object

typeof object -> object

typeof function -> function

typeof array -> object

表达式结果
typeof 2048number
typeof "hello"string
typeof trueboolean
typeof undefinedundefined
typeof nullobject
typeof objectobject
typeof (function f(){})function
typeof [1, 2, 3]object
typeof (new Date())object

我们除了通过typeof来判断基本数据类型以外,还可以通过instanceof来判断一个数据是否是某一个引用类型,用判断实例化和构造关系:

console.log([1] instanceof Array);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值