Day-04 JavaScript资料型别(3)

常见的JavaScript资料型别,可概分为基本型别(primitives)与物件型别(object)。基本型别已为前文所述,而基本上,基本型别以外的型别,就是本篇的主题──物件型别了。

资料型别:物件

建立与存取

JavaScript的物件概念与许多程序语言相近,可包含无属性、单一属性或复数属性,产生多样化的运算及用途。

除了浏览器内建物件(BOM)如window(浏览器视窗)、document(网页)、location(网址)、date(日期时间)之外,我们常常必须自建物件。在JavaScript有两种作法替它塞入各种属性(key)与值(value)。

传统作法:

let prefecture = new Object();

	prefecture.name = “Miyagi”
	prefecture.region = “Tohoku”
	prefecture.callName = function(){
	alert ( this.name );
}

物件实字(object literal),使用大括号即可:

let prefecture = {
	name = “Miyagi”
	region = “Tohoku”
	callName = function(){
	alert ( this.name );
    }
}

在本例中,name为属性,Miyagi为值,依此类推。建立之後,可再透过点(.)来存取它。在刚刚大括号写法的程序码下方加上:

prefecture.name //印出 Miyagi
prefecture.region //印出Tohoku
prefecture.callName //印出 Miyagi

然而,遇到属性命名不合法(如:以数字命名),透过点存取值将发生错误。为此,可另使用中括号存取之:

let prefecture = {
	“004” = “Miyagi”
}

prefecture[“004”] //印出 Miyagi
prefecture.004 // 产生错误 SyntaxError: Unexpected number

属性的增减及确认

新增属性只要以 = 指定即可。承前例,若要新增宫城县的首府,这里加上一个capital属性给它:

let prefecture = {
	name = “Miyagi”
	capital = “Sendai”
	region = “Tohoku”
}

删除属性只须一行detele即可,承前例,若要移除宫城县的地区分类,就写:

delete prefecture.region

删除後、不存在的属性,将属於undefined属性。以移除region属性後的前例为例,若此时印出:

console.log(prefecture.region) //已是undefined而非 Tohoku

凡是总有例外。若此时要呼叫、检查的属性就是undefined,而它其实还存在时,可以用两种方法加以检查。如:

let prefecture = {
	name = “Miyagi”
	capital = “Sendai”
}

//以下使用in运算子
console.log (“name” in prefecture) //true属性存在
console.log (“region” in prefecture) //false属性不存在

//以下使用hasOwnProperty()方法
prefecture. hasOwnProperty(“name”) //true属性存在
prefecture. hasOwnProperty(“region”) //false属性不存在

两者的差别在於,hasOwnProperty()方法只确认该物件/属性本身,in运算子还会追溯物件的原形链(prototype)。有关概念,将於後续文章再做介绍。


<<:  资讯爆炸的焦虑感

>>:  JavaScript学习日记 : Day7 - 函数(二)

GCP VPC防火墙

防火墙 GCP VPC防火墙规则,应用於给定的项目和网络,防火墙规则可以包含IPv4 IPv6 范围...

DAY14 - [JS] 扩充toDoList功能 : 新增 category

今日文章目录: 需求说明 事前准备 需求说明 针对不同用途的toDoList。像是:工作用的toD...

乾卡住

第二天装好django 然後建立了第一个专案bb後 然後我按照影片教的执行 runserver 然後...

[Report] 怎麽插入图片

插入图表 插入图表的方式有2种 1.右键插入图表(Image) 2.从Toolbox拖拉图表过来 再...

C# windows form 在控件事件触发回圈 为何不会更新UI

一般在写 windows form 程序时 如果不是大型开发 老板只要求 东西能动 项目立刻好 我们...