2018-09-29

JS里面具有對象的概念,但是沒有類的概念。原型對象。

  • 面向?qū)ο螅?OOP
    class 人類{}
    張三 = new 人類();

1. 對象的概念

JS一切皆對象。number ,string ,DOM,BOM,array全部都是對象
字面量:一看就知道是啥。

2.申明方式

第一種: {};空的對象
第二種: new Object();

3.對象的鍵

對象內(nèi)容時由鍵值對組成的。前面的名字就是對象的鍵,后面值就是對象鍵的值。
鍵值對是成對出現(xiàn)的,不能單獨存在。
對象的鍵都是字符串,所以前面鍵名在定義的時候不需要添加引號,而對象的值可以是任何數(shù)據(jù)類型,所以對象的值如果是字符串,那么需要添加引號。

4.對象的鍵的字符串特性

如果鍵是數(shù)字格式的,那么先轉(zhuǎn)化成標準數(shù)字,在轉(zhuǎn)化成字符串。

5.特殊的鍵名

以數(shù)字開頭的,但是里面包含有字母的鍵名就是特殊的鍵名。
不符合標識符命名規(guī)范的鍵名就是不標準鍵名。
具有特殊鍵名的需要給鍵名添加引號。而且訪問的時候只能使用中括號的形式訪問。

6.屬性與方法的概念

對象中鍵就叫做對象的屬性。鍵的值叫做屬性值。
如果一個對象的屬性的值是一個函數(shù)。那么我們稱這樣的屬性叫做方法。
屬性值是函數(shù)屬性的叫做對象方法。
屬性值不是函數(shù)的屬性叫做對象屬性。

7.對象的動態(tài)屬性。

一個對象在申明的時候,不一定會申明所有的屬性,有些屬性是可以后來添加的,這種能夠給對象添加屬性的方法叫做對象的動態(tài)屬性。

var p1{
name:"zhansgan",
age : 18
};
var p2={};
p2.name = 'lisi';
p2.age = '18';

8.對象的格式

對象的字面量就是一對大括號。
里面是成對 的鍵值對,也就是屬性。
每一個鍵值對之間使用一個逗號隔開。最后一個可以不加逗號。

9.表達式?還是對象?

{
foo:'bar'
}
在JS V8 引擎規(guī)定,這樣的語法統(tǒng)一認為是一個對象。

10.對象的引用

對象的傳遞和普通數(shù)據(jù)類型的傳遞是不一樣的。
值傳遞與地址傳遞。
簡單數(shù)據(jù)類型的傳遞使用的是值傳遞。
對象數(shù)據(jù)類型的傳遞使用的是地址傳遞。
對象的別名一旦數(shù)據(jù)類型發(fā)生變化,那么與原來對象之間地址引用就發(fā)生了改變。

11.對象的屬性

屬性的獲?。簝煞N方式
    1. 對象名.屬性名
    2. 對象名['屬性名']
    所有使用點操作的方式都是可以替換成中括號形式的。
特殊情況: 
    如果屬性名是數(shù)字,那么只能使用中括號方式。
    如果屬性是一個變量的情況也只能使用中括號,只是不加引號。
屬性的賦值:
    1. 對象.屬性名 = 值;
    2. 對象['屬性名'] = 值;
oDiv.innerHTML
對象的屬性可以使用delete刪除。
刪除成功返回true。刪除不存在的屬性也是返回true,所以不能使用delete的返回值判斷一個屬性是否被刪除。

12.對象的遍歷

in 操作符 : 可以判斷某一個對象是否具有某個屬性。
for....in : 遍歷對象

13.with

with(p3.lala.child){
console.log(o3)
console.log(o2)
o4 = 'das';

}
但是不推介使用。推介使用臨時變量代替一長串對象操作。

14.嚴格模式

使用:”use strict”
1. 腳本開始的位置(不利于JS文件的合并)
2. 函數(shù)開始的位置
3. 腳本改良版,使用立即函數(shù)包含

產(chǎn)生的影響:
1. 禁用with語法
2. 變量必須申明
3. eval的作用域,并且eval與arguments作為關鍵字
4. 全局函數(shù)this指向undefined
5. 對象字面量重復屬性名報錯
6. 禁止使用8進制

15.代碼規(guī)范

縮進:一個tab 或者四個空格。
區(qū)塊括號:
if(){

}
圓括號
函數(shù)調(diào)用,函數(shù)申明沒有空格
func();
分號: 每一代碼結(jié)束的時候要加上分號。
function say(){

}
var say = function(){

};

(function(){

    })();
全局變量:一般要避免使用全局變量,因為會產(chǎn)生污染。
        可以使用立即函數(shù)避免全局變量。避免不了使用全局變量,那么請使用大寫。var USER_NAME 
盡量使用嚴格相等。
不用不申明變量直接使用。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1. 什么是 JS 原型鏈? 2. this 的值到底是什么? 3. JS 的 new 到底是干什么的? 這是 J...
    littleyu閱讀 964評論 2 11
  • json json是 JavaScript Object Notation 的首字母縮寫,單詞的意思是javasc...
    金政銳閱讀 155評論 0 0
  • 閉包存循環(huán)索引 window.onload =function(){vara =document.getEleme...
    金政銳閱讀 134評論 0 0
  • ES5 嚴格模式 1. 理解: 除了正常運行模式(混雜模式),ES5添加了第二種運行模式:"嚴格模式"(stric...
    金政銳閱讀 181評論 0 0
  • 軟件的概念 計算機軟件指計算機系統(tǒng)中的程序及其文檔。 程序:是計算任務的處理對象和處理規(guī)則的描述(形式上是源碼、二...
    Little丶Jerry閱讀 661評論 0 0

友情鏈接更多精彩內(nèi)容