JavaScript高級程序設(shè)計閱讀筆記(五) ECMAScript中的運(yùn)算符(一)
更新時間:2012年02月27日 23:38:21 作者:
ECMAScript中的運(yùn)算符,學(xué)習(xí)js的朋友可以看看
2.9 運(yùn)算符
2.9.1、一元運(yùn)算符
一元運(yùn)算符只有一個參數(shù),即要操作的對象或值。
1、delete:刪除對以前定義的對象屬性或方法的引用,但此運(yùn)算符不能刪除開發(fā)者未定義的屬性和方法。示例:
var o=new Object;
o.name="Nicholas";
o.show=function(){
return "test";
};
console.log(o.name); //outpus Nicholas
console.log(o.show()); //outpus test
delete o.name;
delete o.show;
console.log(o.name); //outpus undefined
console.log(o.show()); //outpus TypeError: o.show is not a function
delete o.toString;
console.log(o.toString()); //outpus [object Object]
2、void:對任何值都返回undefined,該運(yùn)算符通常用于避免輸出不應(yīng)該輸出的值。
如在鏈接中打開新窗口,代碼如下:
<a href="javascript:window.open('about:blank')">Click Me</a>
點擊鏈接后會在新窗口中出現(xiàn)[object]。這是因為window.open()方法返回了對新打開窗口的引用。然后該對象將被轉(zhuǎn)換成要顯示的字符串。要避免這種結(jié)果,可以用void運(yùn)算符調(diào)用window.open()函數(shù):
<a href="javascript:void(window.open('about:blank'))">Click Me</a>
3、前增量/前減量運(yùn)算符:從C中借用的兩個運(yùn)算符。示例:
var iNum=10;
console.log(++iNum); //outpus 11 same as iNum=iNum+1
console.log(iNum); //outpus 11
console.log(--iNum); //outpus 10 same as iNum=iNum-1
console.log(iNum); //outpus 10
4、后增量/后減量運(yùn)算符:從C中借用的兩個運(yùn)算符。與前增量/前減量一樣,也是給數(shù)值加1或減1,不同的是后綴式運(yùn)算符是在計算過包含它們的表達(dá)式后才進(jìn)行增量或減量運(yùn)算的。示例:
var iNum=10;
iNum--
console.log(iNum); //outpus 9
console.log(iNum--); //outpus 9
console.log(iNum); //outpus 8
iNum++
console.log(iNum); //outpus 9
console.log(iNum++); //outpus 9
console.log(iNum); //outpus 10
5、一元加法和一元減法:用法與高中數(shù)學(xué)中學(xué)到的用法相同,一元加法對數(shù)字無任何影響,一元減法就是對數(shù)值求負(fù)。但一元回法和一元減法對字符串進(jìn)行運(yùn)算時與parseInt()相似,主要的不同是只有對以"ox"開頭的字符串,一元運(yùn)算符才把它轉(zhuǎn)換為10進(jìn)制的值。示例:
var iNum=25;
iNum=+iNum;
console.log(iNum); //outpus 25
var sNum="50";
console.log(typeof sNum); //outpus string
console.log(+sNum); //outpus 50
console.log(typeof +sNum); //outpus number
var sNum1="017";
var sNum2="0xB";
console.log(-sNum1); //outpus -17
console.log(-sNum2); //outpus -11
2.9.2 位運(yùn)算符
1、位運(yùn)算NOT:由(~)表示,處理過程如下:
(1) 把運(yùn)算數(shù)轉(zhuǎn)換為32位數(shù)字
(2) 把二進(jìn)制形式轉(zhuǎn)換成它的二進(jìn)制反碼;
(3) 把二進(jìn)制反碼轉(zhuǎn)換為浮點數(shù)
示例:
var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
var iNum2=~iNum1; //conver to 1111 1111 1111 1111 1111 1111 1110 0110
console.log(iNum2); //outpus -26
//位運(yùn)算符NOT實質(zhì)上是對數(shù)字求負(fù),然后減1,因此下面的代碼也可以得到同樣的效果
var iNum3=25;
var iNum4=-iNum3-1;
console.log(iNum4);
2、位運(yùn)算AND:由(&)表示,直接對數(shù)字的二進(jìn)制形式進(jìn)行計算。規(guī)則為全為1才為1,否則為0。示例:
var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
var iNum2=iNum1&3; // 3 is equal to 0000 0000 0000 0000 0000 0000 0000 0011
console.log(iNum2); // and is 0000 0000 0000 0000 0000 0000 0000 0001 outpus 1
3、位運(yùn)算OR:由(|)表示,直接對數(shù)字的二進(jìn)制形式進(jìn)行計算。規(guī)則為全為0才為0,否則為1。示例:
var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
var iNum2=iNum1|3; // 3 is equal to 0000 0000 0000 0000 0000 0000 0000 0011
4、位運(yùn)算XOR:由(^)表示,直接對數(shù)字的二進(jìn)制形式進(jìn)行計算。規(guī)則為只有一個數(shù)位存放的是1時才為1,否則為0。示例:
var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
var iNum2=iNum1^3; // 3 is equal to 0000 0000 0000 0000 0000 0000 0000 0011
console.log(iNum2); // xor is 0000 0000 0000 0000 0000 0000 0001 1010 outpus 26
5、左移運(yùn)算:由(<<)表示,把數(shù)字中的所有數(shù)位向左移動指定的數(shù)量,保留符號位,左移一位相當(dāng)于乘以2。
6、有符號右移運(yùn)算:由(>>)表示,把數(shù)字中的所有數(shù)位向右移動指定的數(shù)量,保留符號位,右移一位相當(dāng)于除以2。
7、無符號右移運(yùn)算:由(>>>)表示,把數(shù)字中的所有數(shù)位向右移動指定的數(shù)量。對于正數(shù)跟有符號的右移完全一樣,對于負(fù)數(shù)作為正數(shù)來處理。
示例:
var iOld=2;
var iOld1=64;
var iOld2=64;
var iOld3=-2;
var iNew=iOld<<5;
var iNew1=iOld1>>5;
var iNew2=iOld2>>>5;
var iNew3=iOld3>>>1;
console.log(iNew); //outpus 64
console.log(iNew1); //outpus 2
console.log(iNew2); //outpus 2
console.log(iNew3); //outpus 2147483647
負(fù)數(shù)iOld3無符號右移的計算方法如下:
先把-2轉(zhuǎn)換成無符號的等價形式,即-2的二進(jìn)制補(bǔ)碼:
-2的非負(fù)版本二進(jìn)制表示:0000 0000 0000 0000 0000 0000 0000 0010
該二進(jìn)制的反碼:1111 1111 1111 1111 1111 1111 1111 1101
在二進(jìn)制反碼上加1:1111 1111 1111 1111 1111 1111 1111 1110
最后再右移一位:0111 1111 1111 1111 1111 1111 1111 1111 即為:2147483647
2.9.3 Boolean運(yùn)算符
1、邏輯NOT:由(!)表示,返回值一定是Boolean值,行為如下:
如果運(yùn)算數(shù)是對象,返回false
如果運(yùn)算數(shù)是數(shù)字0,運(yùn)回true
如果運(yùn)算數(shù)是0以外的任何數(shù)字,反回false
如果運(yùn)算數(shù)是null,返回true
如果運(yùn)算數(shù)是NaN,返回true
如果運(yùn)算數(shù)是undefined,發(fā)生錯誤
2、邏輯AND:由(&&)表示,如果運(yùn)算數(shù)均為Boolean型,只有當(dāng)運(yùn)算數(shù)均為true時才返回true,否則返回false。AND運(yùn)算的運(yùn)算數(shù)可以是任何類型,返回值不一定是Boolean值:
如果一個運(yùn)算數(shù)是對象,另一個是Boolean值,返回該對象
如果兩個運(yùn)算數(shù)都是對象,返回第二個對象
如果某個運(yùn)算數(shù)是null,返回null
如果某個運(yùn)算數(shù)是NaN,返回NaN
如果某個運(yùn)算數(shù)是undefined,發(fā)生錯誤
ECMAScript中的邏輯AND也是簡便運(yùn)算,即如果第一個運(yùn)算數(shù)決定了結(jié)果,就不再計算第二個運(yùn)算數(shù),示例:
var bFalse=false;
var bResult=bFalse&&bUnknow;
console.log(bResult); //outpus false
var bTrue=true;
var bResult=bTrue&&bUnknow;
console.log(bResult); //outpus ReferenceError: bUnknow is not defined
3、邏輯OR運(yùn)算符:由(||)表示,如果運(yùn)算數(shù)均為Boolean型,只有當(dāng)運(yùn)算數(shù)均為false時才返回false,否則返回true。OR運(yùn)算的運(yùn)算數(shù)可以是任何類型,返回值不一定是Boolean值:
如果一個運(yùn)算數(shù)是對象,另一個是Boolean值,返回該對象
如果兩個運(yùn)算數(shù)都是對象,返回第一個對象
如果某個運(yùn)算數(shù)是null,返回null
如果某個運(yùn)算數(shù)是NaN,返回NaN
如果某個運(yùn)算數(shù)是undefined,發(fā)生錯誤
ECMAScript中的邏輯OR也是簡便運(yùn)算,即如果第一個運(yùn)算數(shù)決定了結(jié)果,就不再計算第二個運(yùn)算數(shù),示例:
var bTrue=true;
var bResult=bTrue||bUnknow;
console.log(bResult); //outpus true
var bFalse=false;
var bResult=bFalse||bUnknow;
console.log(bResult); //outpus ReferenceError: bUnknow is not defined
2.9.4 乘性運(yùn)算符
1、乘法運(yùn)算符:由(*)表示,正常情況下跟數(shù)學(xué)中的乘法相同,特殊情況下有些特殊值:
如果運(yùn)算的結(jié)果太大或太小,生成結(jié)果為Infinity或-Infinity
如果某個運(yùn)算數(shù)是NaN,結(jié)果為NaN
Infinity乘以0,結(jié)果為NaN
Infinity乘以0以外的任何數(shù)字,結(jié)果為Infinity或-Infinity,由第二個運(yùn)算數(shù)的符號決定
Infinity乘以Infinity,結(jié)果為Infinity
2、除法運(yùn)算符:由(/)表示,正常情況下跟數(shù)學(xué)中的乘法相同,特殊情況下有些特殊值:
如果運(yùn)算的結(jié)果太大或太小,生成結(jié)果為Infinity或-Infinity
如果某個運(yùn)算數(shù)是NaN,結(jié)果為NaN
Infinity被Infinity除,結(jié)果為NaN
Infinity被任何數(shù)字除,結(jié)果為Infinity
0除以一個非無窮大的數(shù)字,結(jié)果為NaN
Infinity被0以外的任何數(shù)字除,結(jié)果為Infinity或-Infinity,由第二個運(yùn)算數(shù)的符號決定
3、取模運(yùn)算符:由(%)表示,正常情況下跟數(shù)學(xué)中的乘法相同,特殊情況下有些特殊值:
如果被除數(shù)是Infinity,或者除數(shù)是0,結(jié)果為NaN
Infinity被Infinity除,結(jié)果為NaN
如果除數(shù)是無窮大的數(shù),結(jié)果為被除數(shù)
如果被除數(shù)為0,結(jié)果為0
2.9.1、一元運(yùn)算符
一元運(yùn)算符只有一個參數(shù),即要操作的對象或值。
1、delete:刪除對以前定義的對象屬性或方法的引用,但此運(yùn)算符不能刪除開發(fā)者未定義的屬性和方法。示例:
復(fù)制代碼 代碼如下:
var o=new Object;
o.name="Nicholas";
o.show=function(){
return "test";
};
console.log(o.name); //outpus Nicholas
console.log(o.show()); //outpus test
delete o.name;
delete o.show;
console.log(o.name); //outpus undefined
console.log(o.show()); //outpus TypeError: o.show is not a function
delete o.toString;
console.log(o.toString()); //outpus [object Object]
2、void:對任何值都返回undefined,該運(yùn)算符通常用于避免輸出不應(yīng)該輸出的值。
如在鏈接中打開新窗口,代碼如下:
<a href="javascript:window.open('about:blank')">Click Me</a>
點擊鏈接后會在新窗口中出現(xiàn)[object]。這是因為window.open()方法返回了對新打開窗口的引用。然后該對象將被轉(zhuǎn)換成要顯示的字符串。要避免這種結(jié)果,可以用void運(yùn)算符調(diào)用window.open()函數(shù):
<a href="javascript:void(window.open('about:blank'))">Click Me</a>
3、前增量/前減量運(yùn)算符:從C中借用的兩個運(yùn)算符。示例:
復(fù)制代碼 代碼如下:
var iNum=10;
console.log(++iNum); //outpus 11 same as iNum=iNum+1
console.log(iNum); //outpus 11
console.log(--iNum); //outpus 10 same as iNum=iNum-1
console.log(iNum); //outpus 10
4、后增量/后減量運(yùn)算符:從C中借用的兩個運(yùn)算符。與前增量/前減量一樣,也是給數(shù)值加1或減1,不同的是后綴式運(yùn)算符是在計算過包含它們的表達(dá)式后才進(jìn)行增量或減量運(yùn)算的。示例:
復(fù)制代碼 代碼如下:
var iNum=10;
iNum--
console.log(iNum); //outpus 9
console.log(iNum--); //outpus 9
console.log(iNum); //outpus 8
iNum++
console.log(iNum); //outpus 9
console.log(iNum++); //outpus 9
console.log(iNum); //outpus 10
5、一元加法和一元減法:用法與高中數(shù)學(xué)中學(xué)到的用法相同,一元加法對數(shù)字無任何影響,一元減法就是對數(shù)值求負(fù)。但一元回法和一元減法對字符串進(jìn)行運(yùn)算時與parseInt()相似,主要的不同是只有對以"ox"開頭的字符串,一元運(yùn)算符才把它轉(zhuǎn)換為10進(jìn)制的值。示例:
復(fù)制代碼 代碼如下:
var iNum=25;
iNum=+iNum;
console.log(iNum); //outpus 25
var sNum="50";
console.log(typeof sNum); //outpus string
console.log(+sNum); //outpus 50
console.log(typeof +sNum); //outpus number
var sNum1="017";
var sNum2="0xB";
console.log(-sNum1); //outpus -17
console.log(-sNum2); //outpus -11
2.9.2 位運(yùn)算符
1、位運(yùn)算NOT:由(~)表示,處理過程如下:
(1) 把運(yùn)算數(shù)轉(zhuǎn)換為32位數(shù)字
(2) 把二進(jìn)制形式轉(zhuǎn)換成它的二進(jìn)制反碼;
(3) 把二進(jìn)制反碼轉(zhuǎn)換為浮點數(shù)
示例:
復(fù)制代碼 代碼如下:
var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
var iNum2=~iNum1; //conver to 1111 1111 1111 1111 1111 1111 1110 0110
console.log(iNum2); //outpus -26
//位運(yùn)算符NOT實質(zhì)上是對數(shù)字求負(fù),然后減1,因此下面的代碼也可以得到同樣的效果
var iNum3=25;
var iNum4=-iNum3-1;
console.log(iNum4);
2、位運(yùn)算AND:由(&)表示,直接對數(shù)字的二進(jìn)制形式進(jìn)行計算。規(guī)則為全為1才為1,否則為0。示例:
復(fù)制代碼 代碼如下:
var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
var iNum2=iNum1&3; // 3 is equal to 0000 0000 0000 0000 0000 0000 0000 0011
console.log(iNum2); // and is 0000 0000 0000 0000 0000 0000 0000 0001 outpus 1
3、位運(yùn)算OR:由(|)表示,直接對數(shù)字的二進(jìn)制形式進(jìn)行計算。規(guī)則為全為0才為0,否則為1。示例:
復(fù)制代碼 代碼如下:
var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
var iNum2=iNum1|3; // 3 is equal to 0000 0000 0000 0000 0000 0000 0000 0011
4、位運(yùn)算XOR:由(^)表示,直接對數(shù)字的二進(jìn)制形式進(jìn)行計算。規(guī)則為只有一個數(shù)位存放的是1時才為1,否則為0。示例:
復(fù)制代碼 代碼如下:
var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
var iNum2=iNum1^3; // 3 is equal to 0000 0000 0000 0000 0000 0000 0000 0011
console.log(iNum2); // xor is 0000 0000 0000 0000 0000 0000 0001 1010 outpus 26
5、左移運(yùn)算:由(<<)表示,把數(shù)字中的所有數(shù)位向左移動指定的數(shù)量,保留符號位,左移一位相當(dāng)于乘以2。
6、有符號右移運(yùn)算:由(>>)表示,把數(shù)字中的所有數(shù)位向右移動指定的數(shù)量,保留符號位,右移一位相當(dāng)于除以2。
7、無符號右移運(yùn)算:由(>>>)表示,把數(shù)字中的所有數(shù)位向右移動指定的數(shù)量。對于正數(shù)跟有符號的右移完全一樣,對于負(fù)數(shù)作為正數(shù)來處理。
示例:
復(fù)制代碼 代碼如下:
var iOld=2;
var iOld1=64;
var iOld2=64;
var iOld3=-2;
var iNew=iOld<<5;
var iNew1=iOld1>>5;
var iNew2=iOld2>>>5;
var iNew3=iOld3>>>1;
console.log(iNew); //outpus 64
console.log(iNew1); //outpus 2
console.log(iNew2); //outpus 2
console.log(iNew3); //outpus 2147483647
負(fù)數(shù)iOld3無符號右移的計算方法如下:
先把-2轉(zhuǎn)換成無符號的等價形式,即-2的二進(jìn)制補(bǔ)碼:
-2的非負(fù)版本二進(jìn)制表示:0000 0000 0000 0000 0000 0000 0000 0010
該二進(jìn)制的反碼:1111 1111 1111 1111 1111 1111 1111 1101
在二進(jìn)制反碼上加1:1111 1111 1111 1111 1111 1111 1111 1110
最后再右移一位:0111 1111 1111 1111 1111 1111 1111 1111 即為:2147483647
2.9.3 Boolean運(yùn)算符
1、邏輯NOT:由(!)表示,返回值一定是Boolean值,行為如下:
如果運(yùn)算數(shù)是對象,返回false
如果運(yùn)算數(shù)是數(shù)字0,運(yùn)回true
如果運(yùn)算數(shù)是0以外的任何數(shù)字,反回false
如果運(yùn)算數(shù)是null,返回true
如果運(yùn)算數(shù)是NaN,返回true
如果運(yùn)算數(shù)是undefined,發(fā)生錯誤
2、邏輯AND:由(&&)表示,如果運(yùn)算數(shù)均為Boolean型,只有當(dāng)運(yùn)算數(shù)均為true時才返回true,否則返回false。AND運(yùn)算的運(yùn)算數(shù)可以是任何類型,返回值不一定是Boolean值:
如果一個運(yùn)算數(shù)是對象,另一個是Boolean值,返回該對象
如果兩個運(yùn)算數(shù)都是對象,返回第二個對象
如果某個運(yùn)算數(shù)是null,返回null
如果某個運(yùn)算數(shù)是NaN,返回NaN
如果某個運(yùn)算數(shù)是undefined,發(fā)生錯誤
ECMAScript中的邏輯AND也是簡便運(yùn)算,即如果第一個運(yùn)算數(shù)決定了結(jié)果,就不再計算第二個運(yùn)算數(shù),示例:
復(fù)制代碼 代碼如下:
var bFalse=false;
var bResult=bFalse&&bUnknow;
console.log(bResult); //outpus false
var bTrue=true;
var bResult=bTrue&&bUnknow;
console.log(bResult); //outpus ReferenceError: bUnknow is not defined
3、邏輯OR運(yùn)算符:由(||)表示,如果運(yùn)算數(shù)均為Boolean型,只有當(dāng)運(yùn)算數(shù)均為false時才返回false,否則返回true。OR運(yùn)算的運(yùn)算數(shù)可以是任何類型,返回值不一定是Boolean值:
如果一個運(yùn)算數(shù)是對象,另一個是Boolean值,返回該對象
如果兩個運(yùn)算數(shù)都是對象,返回第一個對象
如果某個運(yùn)算數(shù)是null,返回null
如果某個運(yùn)算數(shù)是NaN,返回NaN
如果某個運(yùn)算數(shù)是undefined,發(fā)生錯誤
ECMAScript中的邏輯OR也是簡便運(yùn)算,即如果第一個運(yùn)算數(shù)決定了結(jié)果,就不再計算第二個運(yùn)算數(shù),示例:
復(fù)制代碼 代碼如下:
var bTrue=true;
var bResult=bTrue||bUnknow;
console.log(bResult); //outpus true
var bFalse=false;
var bResult=bFalse||bUnknow;
console.log(bResult); //outpus ReferenceError: bUnknow is not defined
2.9.4 乘性運(yùn)算符
1、乘法運(yùn)算符:由(*)表示,正常情況下跟數(shù)學(xué)中的乘法相同,特殊情況下有些特殊值:
如果運(yùn)算的結(jié)果太大或太小,生成結(jié)果為Infinity或-Infinity
如果某個運(yùn)算數(shù)是NaN,結(jié)果為NaN
Infinity乘以0,結(jié)果為NaN
Infinity乘以0以外的任何數(shù)字,結(jié)果為Infinity或-Infinity,由第二個運(yùn)算數(shù)的符號決定
Infinity乘以Infinity,結(jié)果為Infinity
2、除法運(yùn)算符:由(/)表示,正常情況下跟數(shù)學(xué)中的乘法相同,特殊情況下有些特殊值:
如果運(yùn)算的結(jié)果太大或太小,生成結(jié)果為Infinity或-Infinity
如果某個運(yùn)算數(shù)是NaN,結(jié)果為NaN
Infinity被Infinity除,結(jié)果為NaN
Infinity被任何數(shù)字除,結(jié)果為Infinity
0除以一個非無窮大的數(shù)字,結(jié)果為NaN
Infinity被0以外的任何數(shù)字除,結(jié)果為Infinity或-Infinity,由第二個運(yùn)算數(shù)的符號決定
3、取模運(yùn)算符:由(%)表示,正常情況下跟數(shù)學(xué)中的乘法相同,特殊情況下有些特殊值:
如果被除數(shù)是Infinity,或者除數(shù)是0,結(jié)果為NaN
Infinity被Infinity除,結(jié)果為NaN
如果除數(shù)是無窮大的數(shù),結(jié)果為被除數(shù)
如果被除數(shù)為0,結(jié)果為0
您可能感興趣的文章:
- JavaScript ECMA-262-3 深入解析(一):執(zhí)行上下文實例分析
- JavaScript高級程序設(shè)計 閱讀筆記(七) ECMAScript中的語句
- JavaScript高級程序設(shè)計閱讀筆記(六) ECMAScript中的運(yùn)算符(二)
- JavaScript高級程序設(shè)計 閱讀筆記(四) ECMAScript中的類型轉(zhuǎn)換
- 《JavaScript高級程序設(shè)計》閱讀筆記(三) ECMAScript中的引用類型
- 《JavaScript高級程序設(shè)計》閱讀筆記(二) ECMAScript中的原始類型
- 《JavaScript高級程序設(shè)計》閱讀筆記(一) ECMAScript基礎(chǔ)
- JavaScript ECMA-262-3 深入解析.第三章.this
- JavaScript ECMA-262-3 深入解析(二):變量對象實例詳解
相關(guān)文章
微信小程序?qū)崿F(xiàn)活動報名登記功能(實例代碼)
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)活動報名登記,本篇將介紹使用微信小程序?qū)崿F(xiàn)發(fā)起一個活動報名的設(shè)計,以此為基礎(chǔ),我們可以掌握微信小程序表單的基本用法,進(jìn)而在諸如疫情信息登記、出入報備等場景中使用小程序進(jìn)行開發(fā),滿足相關(guān)的需求,需要的朋友可以參考下2022-09-09詳解如何使用微信小程序云函數(shù)發(fā)送短信驗證碼
這篇文章主要介紹了詳解如何使用微信小程序云函數(shù)發(fā)送短信驗證碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03每個 JavaScript 工程師都應(yīng)懂的33個概念
這個項目是為了幫助開發(fā)者掌握 JavaScript 概念而創(chuàng)立的。它不是必備,但在未來學(xué)習(xí)( JavaScript )中,可以作為一篇指南,需要的朋友可以參考下2018-10-10js Element Traversal規(guī)范中的元素遍歷方法
對于元素間的空格,在IE9之前,都不會返回文檔節(jié)點,其它的所有瀏覽器都會返回文檔節(jié)點,為了兼容瀏覽器這間的差異,又不更改已有的DOM 標(biāo)準(zhǔn),所以有了 Element Traversal 規(guī)范2018-04-04