【JavaScript学习笔记3】JS中的数据和数据类型

引言

程序员归根到底就是跟数据打交道,但是区别于其他的语言,JS脚本语言的数据类型还是有所不同的。
因为程序在运行的过程中会产生各种各样的临时数据,为了方便数据的运算以及操作,JS中有六种数据类型,分为两大类:简单数据类型与复杂数据类型。

简单数据类型与复杂数据类型

众所周知,数据的存放都在内存中,在内存中有堆和栈。
简单的数据类型存放于栈
复杂的数据类型存放于堆

简单的数据类型有:

  • Number: 数据类型
  • String: 字符串类型
  • Boolean: 布尔类型
  • Undefined:变量未初始化
  • null:空类型

复杂的数据类型有:

  • Object:对象类型
  • Array:数据类型

如何判断数据类型

使用typeof操作符
会将检查的结果以字符串的形式返回
例:
在这里插入图片描述

Number数据类型

在JS中:

  • Number数据类型是最基本的数据类型
  • 不区分整型数值和浮点型数值
  • 所有的数值都是Number类型(整数和小数)
  • 包含十六进制数据,以0x开头0-9之间的数字,a(A)-f(F)之间的字母构成。a-f对应的数字是10-15
  • 八进制直接以数字0开始,有0-7之间的数字组成
Number对象方法

在JS中有很多内置对象,Number其实就是其中一个内置对象,该对象有许多的内置方法,因此可以调用一些内置方法来查看Number数据类型的最大值与最小值。
求最大值:Number.MAX_VALUE
求最小值:Number.MIN_VALUE
在这里插入图片描述

在JS中:
使用Infinity表示无穷大
使用-Infinity表示无穷小

NaN非法数字

在JS中对数值进行计算时,如果没有结果返回,则会返回NaN
例:
在这里插入图片描述

注意:

使用Number类型中进行浮点型的运算可能会得到一个不精确的结果(即:小数计算会丢失精度)


字符串类型(String)

  • 字符串由单引号或双引号括起
  • 例如单独一个字母也被称为字符串(例:‘a’)
  • 记住不能一个单引号一个双引号混合使用

布尔类型(Boolean)

  • 任何非零数值都是True,包括正负无穷大
  • 只有0和NaN是false
  • 任何非空字符串都是True
  • 只有空字符串是false
  • 任何对象都是true
  • 只有null和undefined是false

Undefined类型

Undefined是一种比较特殊的类型,表示变量未赋值。只有一个值:undefined
例:

var name;
console.log(name);

name没有被赋值就被调用了,此时会输出undefined

undefined 与 Undefined的区别

undefined和’123‘,‘abc’一样,是一个常量
Undefined和Number.String一样,是一个数据类型

注意:使用typeof对没有初始化和没有声明的变量都会返回undefined

Null类型

Null类型也是只有一个值:null
从语义上,null表示一个空的对象,因此使用typeof查看类型会返回一个Object
例:

var book = null;
console.log(typeof book);
深入解剖Null类型

在这里插入图片描述
正如上面所说,数据是存放在内存中,内存有栈与堆
那么null指向的空对象就存放在堆中,然后在栈中使用地址就能访问到这个空对象。

undefined 与 null

undefined值是从null值衍生出来的,因此通过比较undefined和null是否相同来验证:
例:

var test1 = null;
var test2 = undefined;

//比较test1,test2值是否相同
console.log(test1 == test2);
//比较test1,test2值以及类型是否相同
console.log(test1 === test2);

在这里插入图片描述
从结果可以看到,值是相同的,但是类型并不相同。

简单数据类型与复杂数据类型的本质区别

简单数据类型存放于::由编译器自动分配释放,存放函数的参数值,局部变量的值等。(体积小,使用频率高)

复杂数据类型存放于::由程序员分配释放,若开发者不释放,则程序结束时由OS回收(体积大


以上仅作为本人学习JS的笔记记录,如果有地方表达不正确,欢迎各位大神指点迷津。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值