js考核總結(jié)

原型

原型是對象的模板,可以利用原型創(chuàng)建對象,原型中定義了一些公有屬性和方法,被創(chuàng)建出來的對象共享其屬性和方法

? ? // 創(chuàng)建原型

? ? var Person = function(name){

? ? ? ? this.name = name;

? ? };

? ? // 原型的方法

? ? Person.prototype.sayHello = function(){

? ? ? ? console.log(this.name+",hello");

? ? };

? ? // 實(shí)例化創(chuàng)建新的原型對象

? ? var person1 = new Person("zhangsan");

? ? var person2 = new Person("lisi");

? ? // zhangsan,hello

? ? person1.sayHello();新的原型對象會共享原型的屬性和方法

? ? // lisi,hello

? ? person2.sayHello();新的原型對象會共享原型的屬性和方法

原型對象之間不能共享方法

document的增刪改查 :


? 增:

1. 如果要添加一個(gè)<p>元素,需要先創(chuàng)建一個(gè)p元素:

var para = document.createElement("p");

2. 為p元素創(chuàng)建一個(gè)文本節(jié)點(diǎn)

var node = document.createTextNode("這是一個(gè)新的斷落");

3. 然后將文本節(jié)點(diǎn)放入p元素中

para.appendChild(node);

4. 最后在一個(gè)已存在的元素里添加新的元素p

var element? = document.getElementById("div1");

element.appendChild(para);

5. 如果要添加到某個(gè)特定的地方,需要先獲取這個(gè)元素

var child = document.getElementById("p1");

然后將增加的元素放到child的前面

element.insertBefore(para, child);

? 刪

1. 移除一個(gè)元素前需要知道該元素的父元素

var parent = document.getElementById("div1");

var child = document.getElementById("p1");

然后再刪除child元素

parent.removeChild(child);

(一個(gè)父元素可以用child.parentNode)

? 改(替換):

1. 可以用replaceChild()方法來替換元素

parent.replaceChild(para,child);

? ? ? ? ? ? ? ? ? ? ? ? ? ? 新? ? 舊

2. 如何改變某個(gè)元素的屬性

document.getElementById("image").src="landscape.jpg";

3. 如何改變某個(gè)元素的css樣式

document.getElementById("p2").style.color="blue";

? 查:

1. 通過標(biāo)簽名

var y=getElementsByTagName("p");

2. 通過類名

var x=document.getElementsByClassName("intro");

3. 通過id名

var x=document.getElementById("intro");

4. 通過name屬性名

<input name="checkbox" type="checkbox" />box3

var inputArray = document.getElementsByName("checkbox");

js正則表達(dá)式從無到有

? ? 首先是正則表達(dá)式是由字符序列組成的搜索模式

? 正則表達(dá)式的創(chuàng)建:

var reg = new Regexp("正則表達(dá)式","搜索模式"

var reg = /ac/I

? 通過字符類[]可以衍生出范圍類

1. /[a-z]/? 任意小寫字母

2. /[A-Z]/? 任意大寫字母

3. /[a-Z]/? 任意字母

4. /[0-9]/? 任意數(shù)字

? 預(yù)定義類

字符取反:[^]

.? ? [^\r\n]? 除了回車,換行之外的所有字符

\d? [0-9]? ? ? 數(shù)字字符

\D? [^0-9]? ? 除了數(shù)字字符

\s? [\t\n\x0B\r]? ? 空白符

\S? [^\t\n\x0B\r]? ? 除了空白符

\w? [a-zA-Z_0-9]? 數(shù)字,字母,下劃線

\W? [^a-zA-Z_0-9]? 除了數(shù)字,字母,下劃線

? 選擇和分組

1. 選擇 符號|

var reg=/[a|b]/;//檢查字符串是否含有a或者b,是為true

2. 分組 符號()

reg=/^(ch)/;//字符串是否以ch為開頭,是為true

? 量詞

{n}? 重復(fù)出現(xiàn)n次

{m,n}? 重復(fù)出現(xiàn)m-n次

{m, }? 重復(fù)出現(xiàn)m次以上

+? ? ? ? ? 至少出現(xiàn)一次,{1, }

*至少出現(xiàn)0次或者多次

?? ? ? 出線0次或1次,{0,1}

? 指定匹配位置

^? 匹配字符串的開始/^…/

$? 匹配字符串的結(jié)尾/ …$/

\b? 單詞邊界

\B? 除了單詞邊界

? 字符串的常用方法

? split()

? ? ? ? ? 1.方法將會根據(jù)正則表達(dá)式去拆分字符串

2.不指定全局匹配也會全部拆分

結(jié)果以數(shù)組的形式輸出

? search()

1.搜索字符串中是否含有指定內(nèi)容

2.搜索到結(jié)果將會返回第一次出現(xiàn)的索引,無則返回-1

3.不會全局匹配,只會返回第一個(gè)

? match()

1.提取出字符串中符合條件的內(nèi)容

2.默認(rèn)不是全局匹配,可以設(shè)置全局匹配

3.返回結(jié)果封裝到數(shù)組中

? replace()

1.將字符串中的指定內(nèi)容換替換為新的內(nèi)容

2.參數(shù)一:被替換的內(nèi)容;參數(shù)二:新的內(nèi)容

3.默認(rèn)替換第一個(gè),可全局匹配

str.replace(/a/g,"%");//將任意字母全部替換,輸出1%1%2%

this指向問題

? 對象方法中的this指向方法所屬的對象

? 函數(shù)中的this指向函數(shù)的所屬者

? 單獨(dú)使用this指向全局對象window

? 嚴(yán)格模式下函數(shù)中使用this,this為undefined

? 在HTML事件句柄中指向接收事件的HTML元素

? all()和apply()可以改變this所指向的對象

數(shù)組遍歷的幾種方法

? for循環(huán)

? for循環(huán)的優(yōu)化,把[array].length的數(shù)值存入一個(gè)變量,避免重復(fù)獲取array的長度

? 弱化for循環(huán):

for(int I;array[i]!=0;i++){

}

? foreach

array.foreach(funtion(e){

}

)

? for in遍歷

? for of遍歷

? map遍歷:

array.map(function(n){

}

)


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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