JavaScript筆記5:計時器、物件、基本資料型別、引用資料型別
目錄
-
console.time()計時器
-
console.time()函式
-
可以用來開啟一個計時器
-
需要傳入一個字串作為引數,這個字串會作為該計時器的標識(名字)
-
-
console.timeEnd()函式
-
可以用來關閉一個計時器
-
需要傳入一個字串(已有計時器的標識),用來指定需要停止的計時器
-
-
單位:ms
-
console.time('name')
程式碼塊
console.timeEnd('name')
-
物件
-
在JS中的資料型別有String、Number、Boolean、Null、Undefined、Object。前五種是基本資料型別,只要不是這五種,那就是Object物件
-
物件是一種複合的資料型別,在物件中可以儲存多個不同的資料型別的屬性
-
物件的分類:
-
內建物件:
-
由ES標準中定義的物件,在任何的ES的實現中都可以使用
-
如:Math、String、Number
-
-
宿主物件:
-
由JS的執行環境提供的物件,目前來講主要是指由瀏覽器提供的物件
-
如:BOM、DOM
-
-
自定義物件:
-
由開發人員建立的物件
-
-
-
建立物件
-
使用new關鍵字呼叫的函式,是建構函式(constructor)
-
建構函式專門用來建立物件
-
-
// 使用建構函式建立
var name1 = new Object();
// 使用物件字面量建立({})
var name2 = {};
var name3 = { 屬性名:屬性值, 屬性名:屬性值, …… };
// 使用工廠模式建立(使用工廠模式建立的物件都是Object型別)
function 函式名(形參1, 形參2, ...){
// 建立一個新的物件
var 物件名 = new Object();
//新增屬性
物件名.屬性1 = 形參1;
物件名.屬性2 = 形參2;
物件名.方法名 = function(){語句...}
// 返回物件
return 物件名;
}
var 物件名 = 函式名(實參1, 實參2, ...);
// 工廠模式最終版
function createPerson2(name, age, gender){
// 建立一個新的物件
var obj = new Object()
// 向物件中新增屬性
obj.name = name;
obj.age = age;
obj.gender = gender;
obj.sayName = function(){
console.log('新:' + this.name + ' ' + this.age + ' ' + this.gender)
}
// 將該物件返回
return obj;
}
var obj3 = createPerson2('孫悟空', 18, '男')
obj3.sayName()
-
新增屬性
-
物件中儲存的值稱為屬性,向物件新增屬性的語法:
-
// 向物件新增屬性 物件名.屬性名 = 屬性值 物件名["屬性名"] = 屬性值
-
物件名["屬性名"] = 屬性值更靈活,在[]中直接傳遞一個變數時,就會讀取變數值對應的屬性
-
obj['m'] = 123; var n = 'm' console.log(obj[n]);
-
讀取物件中的屬性
-
如果讀取物件中不存在的屬性,不會報錯,而是會返回undefined
-
-
// 讀取物件中的屬性 物件名.屬性名
-
修改物件中的屬性值
-
-
// 修改物件中的屬性值
物件名.屬性名 = 新值
-
刪除屬性
// 刪除屬性
delect 物件名.屬性名
<script>
// 建立obj物件
var obj = new Object();
// 向obj中新增一個name屬性
obj.name = '孫悟空';
// 取出obj的屬性值
console.log(obj.name);
// 修改name屬性的值
obj.name = '豬八戒';
// 取出obj的屬性值
console.log(obj.name);
// 刪除name屬性
delete obj.name;
// 取出obj的屬性值
console.log(obj.name);
// 列印
console.log(obj);
</script>
-
屬性名和屬性值
-
屬性名:
-
物件名不強制要求遵守識別符號規範,但是極力推薦遵守規範
-
-
屬性值:
-
JS物件的屬性值可以是任意資料型別
-
-
in 運算子
-
通過該運算子可以檢查一個物件中是否含有指定的屬性
-
有,則返回true
-
無,則返回false
-
-
-
// in 運算子語法
"屬性名" in 物件
-
基本資料型別和引用資料型別
-
JS中的變數都是儲存在棧記憶體中
-
基本資料型別
-
基本資料型別的值直接儲存在棧記憶體中
-
值與值之間獨立存在,修改一個變數不會影響其他變數
-
-
引用資料型別
-
物件儲存在堆記憶體中,每建立一個新的物件,就會在堆記憶體中開闢一個新的空間,而變數儲存的是物件的記憶體地址(物件的引用)
-
如果兩個變數儲存的是同一個物件引用,當通過一個變數修改屬性時,另一個變數也會受到影響
-
-
-
==時
-
當比較兩個基本資料型別時,比較值
-
當比較兩個引用資料型別時,比較的是物件的地址
-
-
相關文章
- js資料型別之基本資料型別和引用資料型別JS資料型別
- JAVA中基本資料型別和引用資料型別Java資料型別
- 基本資料型別與引用資料型別,及記憶體分配資料型別記憶體
- JavaScript 基礎 (二) - 引用資料型別 (物件)JavaScript資料型別物件
- Java中的基本資料型別與引用資料型別Java資料型別
- JavaScript基本資料型別JavaScript資料型別
- 基本資料型別與API引用型別的使用資料型別API
- 區別值型別資料和引用型別資料型別
- JavaScript - 基本型別與引用型別值JavaScript型別
- JavaScript基本資料型別有哪些JavaScript資料型別
- JavaScript 基本資料型別轉換JavaScript資料型別
- 《JavaScript物件導向精要》之一:基本型別和引用型別JavaScript物件型別
- JavaScript獲取物件資料型別JavaScript物件資料型別
- Java集合不能存放基本資料型別,只存放物件的引用Java資料型別物件
- 基本資料型別資料型別
- 基本資料型別與字串型別資料型別字串
- Python學習筆記2:基本資料型別Python筆記資料型別
- JavaScript 基礎 (一) - 基本資料型別JavaScript資料型別
- MySQL資料型別筆記MySql資料型別筆記
- python筆記--資料型別Python筆記資料型別
- JavaScript資料型別JavaScript資料型別
- JavaScript - 資料型別JavaScript資料型別
- JavaScript 資料型別JavaScript資料型別
- python基本資料型別計算Python資料型別
- 003基本資料型別資料型別
- MySQL基本資料型別MySql資料型別
- Java基本資料型別Java資料型別
- Java 基本資料型別Java資料型別
- python基本資料型別Python資料型別
- Redis In Action 筆記(一):基本資料型別及其操作Redis筆記資料型別
- hive學習筆記之一:基本資料型別Hive筆記資料型別
- JavaScript基本資料型別之undefined和nullJavaScript資料型別UndefinedNull
- Go 筆記之資料型別Go筆記資料型別
- Redis 筆記(核心資料型別)Redis筆記資料型別
- Python基本資料型別:布林型別(Boolean)Python資料型別Boolean
- javaScript的資料型別JavaScript資料型別
- JavaScript引用型別-Object型別JavaScript型別Object
- python學習筆記1—python的基本資料型別Python筆記資料型別