首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第1期:理解JavaScript数据类型

写在前面

前端进阶系列本着“好好干前端”的心态,一步一个脚印认真练好前端的基本功,为在前端的发展道路上做好铺垫。

本周正式开始前端进阶的第1期,本周的主题是。

数据类型

最新的 ECMAScript 标准定义了7种数据类型,主要分为两大类和。

基本类型

有时也被称为或。其中包括6种数据类型,分别是:、、、、、。

字符串类型

JavaScript的字符串类型用于表示文本数据。它是一组16位的无符号整数值的“元素”。在字符串中的每个元素占据了字符串的位置。第一个元素的索引为0,下一个是索引1,依此类推。字符串的长度是它的元素的数量。

数字类型

根据 ECMAScript 标准,JavaScript 中只有一种数字类型:基于 IEEE 754 标准的双精度 64 位二进制格式的值(-(263 -1) 到 263 -1)。它并没有为整数给出一种特定的类型。除了能够表示浮点数外,还有一些带符号的值:+Infinity,-Infinity 和 NaN (非数值,Not-a-Number)。

布尔类型

布尔表示一个逻辑实体,可以有两个值:true 和 false。

Null 类型

Null 类型只有一个值: null。

Undefined 类型

一个没有被赋值的变量会有个默认值 undefined。

符号类型

符号(Symbols)是ECMAScript 第6版新定义的。符号类型是唯一的并且是不可修改的, 并且也可以用来作为Object的key的值。

引用类型

主是指。

Object 对象

在计算机科学中, 对象是指内存中的可以被 引用的一块区域。

类型对比

我们都知道JavaScript中有两大数据类型:和,其中主要是把值存储在中,而却是把地址存储在中,把值存储在中,然后将中存储的地址指向中存储的值。

什么是堆栈?

堆栈是两种数据结构,是一种数据项按序排列的数据结构,只能在一端进行插入和删除操作。堆为队列优先,先进先出(FIFO)。栈为先进后出(FILO)。

堆和栈有啥区别?

空间分配

堆(操作系统):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收,分配方式类似于链表。PS:java中都是系统GC,程序员无法进行GC。

栈(操作系统):由操作系统自动分配释放,存放函数的参数值,局部变量值等。操作方式与数据结构中的栈相类似。

缓存方式

堆:使用二级缓存,生命周期与虚拟机的GC算法有关(并不是引用为空就立即被GC),调用速度相对较低。

栈:使用一级缓存,被调用时通常处于存储空间中,调用后被立即释放。

数据结构

堆(数据结构):类似于树结构,可以类比于堆排序

栈(数据结构):先进后出(FILO)

总结

本篇文章内容主要告诉我们以下几个基本知识点:

JavaScript中有7种数据类型,分为两大类:和。

堆和栈的概念和区别,以及JavaScript中两大数据类型的存储方式。

抛出了一些数据类型转换时遇到的“奇葩”问题。

针对第3点我们将在下一章节中重点讲解。

参考资料

JavaScript 数据类型和数据结构

操作系统中堆(heap)与栈(stack)的区别

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190215G0RJ1G00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券