在 JavaScript 这语言里,其实指分成两种型别:原始型别、物件型别
原始型别又称纯值,在 JS 世界中除了 7 种原始型别,其他的都是物件型别,所以这边先来认识一下有哪些属於原始型别:
以及後来新增的两种原始型别:
使用 typeof()
这个方法可以查询变数、常数的型别,比较特别的是 查询 null
会回传 object ,这是 JS 长久以来存在的 bug,由於修正了会有许多老旧网站无法运作,於是他变一直存在。
const string = 'test'
typeof(string) // "string"
const num = 1232
typeof(num) //"number"
const boolean = true
typeof(boolean) //"boolean"
const unde = undefined
typeof(unde) //"undefined"
const nu = null
typeof(nu) //object
值得一提的是这些原始型别,都有一些能够使用的特别方法,例如
const string1 = 'test'
string1.length //4
string1.toUpperCase() // TEST
之所以这些原始型别能够使用这些方法,是因为当我们对 原始型别的资料 使用这些方法时,原始型别会够透过 基本型别包裹器(Primitive Wrapper) 将 原始型别资料 暂时转换成 带有这些 特殊方法的 物件。
实际上我们可以直接使用 new
的建构式方法,来建立转换後的资料,并且对使用 new
建构式建立的资料 使用 typeof
来做他都会回传 Object,也因为这个特性我们实做时不太会使用这种方法建立相关资料。
const string2 = new String('test')
typeof string2 //object
在浏览器输入 string2 除了会回传我们建立的资料,还有一个 [[Prototype]]
(原型)栏位,将他点开会发现 该型别能使用的特别方法都藏在这里:
(原型以及建构式,在後续原型章节则会再介绍到。)
new Boolean();
new String();
new Number();
BigInt();
Symbol();
唯独 undefined 以及 null 是没有基本型别包裹器。
除了上面 7 种原始,其他都属於物件型别,这边也介绍一下常用到的物件型别。
阵列也是属於物件型别的一种,这边使用上面提到的 typeof()
就能确认这点
const array =[1,2,3]
typeof(array ) //object
函示也是物件型别的一种,使用 typeof()
他会回传 "function" ,但函示其实是比较特别的物件,被称做『函式物件 ( Function Object )』, 这点 MDN 文件也有提到:
Function 建构函式可建立一个新的 Function 物件。在 JavaScript 中,所有的函式实际上都是 Function 物件。
JavaScript 核心篇 (六角学院)
<<: .Net Core Web Api_笔记04_HTTP资源操作模式Put
>>: [Day3] 论前端框架的好处及重要性~从自己刻到学习共通语言(下篇)
由於RDS注重资料的一致性, Transaction就相对重要, 也是RDS的优势. 从最基本的Be...
OpenSSL 是一个开源命令行工具,通常用於生成私钥、创建 CSR、安装 SSL/TLS 证书以及...
出於书本 Chapter 7. Passwords 话说... 书本在讲解各种密码破解的相关知识时,...
来到铁人赛的第30天,也就是最後一天了,今天我想要和深度学习的初学者们,以及愿意阅读我文章的读者,分...
前置作业-HTML & CSS 使用 Google 查 Weather App 会有很多很多...