對象字面量? JSON
var obj = { aaa :999};
var json={"aaa":999,“bbb”:888};
”kay“:value
對象字面2??定義方法和json很像,只有一點不同,json的key 必須加“” ;
對象,數組也可以作為鍵值
JSON的組成
Javascript Object Notation 對象字面量的一種表現形式 ;
鍵名必須有雙引號“”包圍 ;
為什么用JSON :對于AJAX應用程序來說,JSON比XML更快更易使用 ;
JSON語法規則:JSON語法是Javascript對象表示語法的子集:
a、數據在名稱/值對中
b、數據由逗號分開
c、花括號保存對象
d、方括號保存數組
JSON的值可以是:
a 、 數字(整數或浮點數)
b、 字符串(在雙引號中)
c、 邏輯值(true或false)
d、數組 (在方括號中)
e、對象(在花括號中)
f、 null
? for…in..遍歷對象
- 由于對象本身沒有length屬性,所以不能用for循環遍歷
1.??? var json = {? //創建一個對象
"name" : "趙四",
"sex" : "男",
"sayHi" : function (){
console.log(json.name + ",你好!");
}
}
for (var key in json){
console.log(key);//打印鍵名,不打印鍵值
console.log(json[key]);//打印鍵值
}
?偽代碼:類
- 強類型語言是用class定義對象
- JS的ES6提到了class
?傳值和傳址
一、簡單類型數據做參數,函數內部對參數的修改不應影響外部變量
簡單類型傳數值。
簡單數據類型保存在棧中
變量保存的事數據本身/函數調用傳遞的是值不是地址/壓棧,先進后出/地址值:哈希值
二、復雜類型數據做參數,函數內部對參數的修改會應影響外部變量
????? 復雜類型傳地址。
簡單數據類型保存在堆中
變量保存的事數據的地址
var num =1; fun(num); console.log('+++' + num );function fun(a) {a = a *20 ;console.log(a);} var arr = [1,2,3]; fun1(arr); console.log(arr); function fun1(array) {//arr和array是指向的同一個內存地址// 函數修改array地址內的內容,arr的內容同時也被修改array[0] = 2;console.log(array) ;
?
內置對象
- JS中已經定義好的對象。創建之后可直接使用
- Date、Array、Math、Regexp(正則表達式)、Error、String、Number
- 主要學習內置對象的API,H5的方法
a)? 調用者:有無調用者
b)? 參數:有無,幾個
c)? 功能:干什么用的
d)? 返回值:有無,什么類型
- 學習方法:手冊,MDN
- API:應用程序接口
?