JS 的资料型态主要分成物件型态及原始型态。
物件型态的资料可以使用属性及方法。
ex: 阵列[ ]、物件{ }、函式
原始型态是一种资料,他不是物件而且也没有属性及方法可以用,他的值是唯读的,记忆体位置都在同个地方,分为 7 大类,其中 BigInt 以及 Symbol 是比较少见的原始型态:
用来让我们能更精确的呈现数字。
number 只能呈现 2的53次方内的值,如果超出这个范围就要将数值转换成 BigInt 型态才能正常呈现。
可以在数值後面加一个 n 让他转型成 BigInt。
ES6 之後才出现的型态,跟字串很像。
差异:
好处:
可以让物件里面的属性名称相同,不会被覆盖掉。
如果属性名称是用字串写的话,遇到相同名称的属性,後面写的会覆盖掉前面写的。
但如果属性名称是用 symbol 写的话,就不会发生这个问题,两个值都会存在。
举例:
// 符号可以透过Symbol('')产生
// 定义两个同名符号,赋值给两个不同常数
const sym1 = Symbol('foo');
const sym2 = Symbol('foo');
// 将他们都转型成字串
sym1.toString();
sym2.toString();
// 印出 false,代表 sym1、sym2 指向不同值
console.log(sym1 === sym2);
// 印出 true,代表转成字串後是指向同一个值
console.log(sym1.toString() === sym2.toString());
// 定义两个同名物件,赋值给两个不同常数
const obj1 = {'123': 123}
const obj2 = {'123': 123}
// 印出 false,代表 obj1、obj2 指向不同值
console.log(obj1 === obj2)
参考:
[1]MDN:JavaScript 的资料型别与资料结构
[2]重新认识 JavaScript: Day 03 变数与资料型别
>>: [ Day 13 ] - 如何透过 DOM 抓取网页元素
Astra Security 昨天发布这个紧急通知,新的 Contact Form 7 补救更新已...
ARM Cortex Overview ARM Architecture 从第七代开始,分为三种配置...
你是否遇到过这样的情况:硬碟被格式化,储存的资料无法获取;硬碟资料被误删而无法找回······硬碟资...
今天我们来尝试看看部署一个 Dapp。要进入之前请先确保,有照着前两天介绍的 metamask &a...
由於我们要建立一个能够及时回复的聊天机器人所以我们需要给我们回复的程序码一个明确的家,方便能够随时找...