?前言,對于前端基礎的部分認識了解,我是個小白!
一,對象
(1)創建空白對象:var ?obj ?= ?new ?Object();
(2)構造函數(就是為了創建對象實例)
1,可以創建對象實例的函數。
2,區別與普通函數,首字母大寫。
(3)This:this只出現在函數中。
誰調用函數,this就指的是誰。
new People():? ?People中的this代指被創建的對象實例。
new:1.開辟內存空間,存儲新創建的對象( new Object() )
2.把this設置為當前對象
3.執行內部代碼,設置對象屬性和方法
4.返回新創建的對象十進制的值=位值*進制(位數-1) +位值*進制(位數-1) +位值*進制(位數-1)
(4)對象字面量JSON
var obj = {aaa: 111}; var json = {“aaa”:111};
對象字面量定義方法和json很像,只有一點不同,json的key要求必須加“”;
json組成:Var json = {“aaa”: 1,“bbb”: 2,“ccc”: 3,“ddd”: 4}
Json由{}和key:value以及逗號組成,三部分。(只有一個鍵值對key:value時,可以沒有逗號)
for...in...:Var json = {“aaa”: 1,“bbb”: 2,“ccc”: 3,“ddd”: 4}
for(var key in json){
//key代表aaa,bbb.....等
//json[key]代表1,2,3....等
}
構造函數的原理
function ?Num(aaa){
this["[[PrimitiveValue]]"] = num/1;
return ?aaa/1;
}
二,流程結構
分為三類:順序結構,選擇結構,循環結構。
順序結構:按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。
選擇結構:1,丟棄小數部分,保留整數部分
2,向上取整,有小數就整數部分加
3,四舍五入
4,向下取整
循環結構:1,遍歷數組首選for循環,簡單循環使用for。
2,而while循環強調,不記循環次數(不知道循環多少次),首選while。
3,最后do...while循環強調,無論怎樣,至少執行一次是,使用do...while。
(1)for循環
1,執行流程
for (變量;條件1;條件2){ 執行程序 }
執行過程:變量->條件1->執行程序->條件2->條件1->執行程序.....
直到條件1不成立,跳出循環。
2,三個表達式均為可選,但是必須寫分號。(for(){程序}? ? ?死循環;)
(2)while循環
語法規則:
var i = 0;
while(i<10){程序1;i++};
可以使用死循環和break連用。
While(true)(程序1; if(條件1){break;})
(4)do...while循環(一定會執行一次do中的程序)
var i = 0;
Do{
程序1;
i++;
}while(1<10);
事件:js是一門以事件驅動為核心的語言。事件的三要素是事件源,事件,事件驅動程序(獲取事件源,綁定事件,書寫事件驅動程序)
HTML的組成部分為節點(Node):在HTML當中一切都是節點……
由結構圖中我們可以看到,整個文檔就是一個文檔節點。
每一個HMTL標簽都是一個元素節點(標簽)。
標簽中的文字則是文字節點。(文本)
標簽的屬性是屬性節點。(屬性)
操作節點,找到該元素,通過節點id找到HTML元素,通過節點標簽名找到HTML元素,通過節點類名找到HTML元素。(節點的訪問關系都是屬性。節點的操作都是函數或者方法)
節點:
父節點?:調用者就是節點。一個節點只有一個父節點。調用方式就是節點.parentNode.
兄弟節點:Sibling就是兄弟的意思;Next:下一個的意思;Previous:前一個的意思;nextSibling:調用者是節點。
單個子節點:
firstChild:調用者是父節點。IE678中指第一個子元素節點(標簽)。在火狐谷歌IE9+以后都指的是第一個節點(包括空文檔和換行節點)。firstElementChild:在火狐谷歌IE9都指的第一個元素節點。第一個子節點=父節點.firstElementChild || 父節點.firstChild。lastChild:調用者是父節點。IE678中指最后一個子元素節點(標簽)。在火狐谷歌IE9+以后都指的是最后一個節點(包括空文檔和換行節點)。lastElementChild:在火狐谷歌IE9都指的最后一個元素節點。第一個子節點=父節點.lastElementChild|| 父節點.lastChild。
所有子節點:
childNodes:它是標準屬性,它返回指定元素的子元素集合,包括HTML節點,所有屬性,文本節點 ??(他還是W3C的親兒子 )。火狐谷歌等高本版會把換行也看做是子節點。nodeType==1時才是元素節點(標簽)。children:非標準屬性,它返回指定元素的子元素集合。
但它只返回HTML節點,甚至不返回文本節點,雖然不是標準的DOM屬性,但它和innerHTML方法一樣,得到了幾乎所有瀏覽器的支持。children在IE6/7/8中包含注釋節點。在IE678中,注釋節點不要寫在里面。
創建節點:使用方法是這樣document.createElement();
新的標簽(節點)= document.createElement(“標簽名”);
插入節點(使用節點):使用方法:父節點.appendChild();父節點.appendChild(新節點); 父節點的最后插入一個新節點。使用方法:父節點.insertBefore(要插入的節點,參考節點);父節點.insertBefore(新節點,參考節點)在參考節點前插入;如果參考節點為null,那么他將在節點最后插入一個節點。
刪除節點:用法:用父節點刪除子節點。父節點.removeChild(子節點);必須制定要刪除的子節點
節點自己刪除自己:不知道父級的情況下,可以這么寫:node.parentNode.removeChild(node)
復制節點:想要復制的節點調用這個函數cloneNode(),得到一個新節點。 方法內部可以傳參,入股是true,深層復制,如果是false,只復制節點本身。新節點=要復制的節點.cloneNode(參數) ; 參數可選復制節點。用于復制節點,接受一個布爾值參數,true表示深復制(復制節點及其所有子節點), false 表示淺復制(復制節點本身,不復制子節點)
節點屬性:獲取:getAttribute(名稱)。設置:setAttribute(名稱, 值)刪除:removeAttribute(名稱);注意:IE6、7不支持。調用者:節點。有參數。沒有返回值。每一個方法意義不同。
三,DOM
dom元素:DOM就是html文檔的模型抽象。數據以樹的形式在內存中排列。節點就是DOM的組成。是一個對象,有屬性和方法。獲取方式有很多種。節點分為元素節點(標簽),文本節點,屬性節點。區分方法:nodeType: 1是標簽,2是屬性,3是文本。
1,解析過程:HTML加載完畢,渲染引擎會在內存中把HTML文檔,生成一個DOM樹,getElementById是獲取內中DOM上的元素節點。然后操作的時候修改的是該元素的屬性。
2,DOM(文檔對象模型)
dom是一個復合數據類型
3,DOM數據結構(樹圖)