JavaScript 基礎(chǔ)知識 被自己遺忘的
更新時(shí)間:2009年10月15日 22:45:40 作者:
JavaScript 基礎(chǔ)知識 被自己遺忘的,學(xué)習(xí)的朋友可以參考下。
5%10=5
x="5"+"5";
x="5"+5 ;
document.write(x);(結(jié)果都為﹕55)
undefined是未初始化的變量的值﹐沒有引用值﹐屬于未定義
var anyway; anyway屬于已定義 有默認(rèn)空值
一元運(yùn)算符﹕delete(刪除對開發(fā)者定義的對象和方法的引用﹐不能刪除原始的ECMAScript方法)
void 運(yùn)算符對任何值返回 undefined
沒有返回值的函數(shù)真正返回的都是 undefined。
一元加法本質(zhì)上對數(shù)字無任何影響。
一元加法計(jì)算字符串的方式與 parseInt() 相似
區(qū)別﹕只有一元加法才可以對八進(jìn)制與十六進(jìn)制形式的字符串(如﹕OxB﹑010)進(jìn)行轉(zhuǎn)換
一元減法計(jì)算字符串﹐將字符串轉(zhuǎn)換成近似的數(shù)字﹐再對該值求負(fù)
ECMAScript 整數(shù)有兩種類型:有符號整數(shù)和無符號整數(shù)
0 表示正數(shù),1 表示負(fù)數(shù)
正數(shù)是以真二進(jìn)制形式存儲的
負(fù)數(shù)也存儲為二進(jìn)制代碼,采用二進(jìn)制補(bǔ)碼。
計(jì)算數(shù)字二進(jìn)制補(bǔ)碼﹕絕對值求反加一
在處理有符號整數(shù)時(shí),開發(fā)者不能訪問 31 位。
var iNum = -18;
alert(iNum.toString(2));
輸出的是 "-10010"﹐非二進(jìn)制補(bǔ)碼﹐為了避免訪問31位
無符號整數(shù)的數(shù)值范圍為 0 到 4294967295
把無符號整數(shù)轉(zhuǎn)換成字符串后,只返回它們的有效位。
位運(yùn)算 NOT(~)﹐位運(yùn)算 AND﹐位運(yùn)算 OR(|)﹐無符號右移運(yùn)算(>>>)
左移運(yùn)算(<<)注意:左移運(yùn)算保留數(shù)字的符號位
位運(yùn)算 XOR由符號(^)表示
只有一個(gè)數(shù)位存放的是 1 時(shí),它才返回 1
所有整數(shù)字面量都默認(rèn)存儲為有符號整數(shù)。
只有 ECMAScript 的位運(yùn)算符才能創(chuàng)建無符號整數(shù)。
var iNum1 = 25; //25 等于 00000000000000000000000000011001
var iNum2 = ~iNum1; //轉(zhuǎn)換為 11111111111111111111111111100110
alert(iNum2); //輸出 "-26"
<!-- //-->與老的瀏覽器打交道
/* */多行注釋
邏輯 NOT 運(yùn)算符的行為如下:
* 如果運(yùn)算數(shù)是數(shù)字 0,返回 true
* 如果運(yùn)算數(shù)是 0 以外的任何數(shù)字,返回 false
* 如果運(yùn)算數(shù)是 null,返回 true
* 如果運(yùn)算數(shù)是 NaN,返回 true
* 如果運(yùn)算數(shù)是 undefined,發(fā)生錯(cuò)誤
!!sBlue﹐第一個(gè) NOT 運(yùn)算符返回 Boolean 值。第二個(gè) NOT 將對該 Boolean 值求負(fù)
邏輯 AND 運(yùn)算并不一定返回 Boolean 值:
* 如果一個(gè)運(yùn)算數(shù)是對象,另一個(gè)是 Boolean 值,返回該對象。
* 如果兩個(gè)運(yùn)算數(shù)都是對象,返回第二個(gè)對象。
* 如果某個(gè)運(yùn)算數(shù)是 null,返回 null。
* 如果某個(gè)運(yùn)算數(shù)是 NaN,返回 NaN。
與邏輯 AND 運(yùn)算符相似,如果某個(gè)運(yùn)算數(shù)不是 Boolean 值,邏輯 OR 運(yùn)算并不一定返回 Boolean 值:
* 如果一個(gè)運(yùn)算數(shù)是對象,另一個(gè)是 Boolean 值,返回該對象。
* 如果兩個(gè)運(yùn)算數(shù)都是對象,返回第一個(gè)對象。
* 如果某個(gè)運(yùn)算數(shù)是 null,返回 null。
* 如果某個(gè)運(yùn)算數(shù)是 NaN,返回 NaN。
乘法運(yùn)算符(*)
* 如果結(jié)果太大或太小,那么生成的結(jié)果是 Infinity 或 -Infinity。
* 如果某個(gè)運(yùn)算數(shù)是 NaN,結(jié)果為 NaN。
* Infinity 乘以 0,結(jié)果為 NaN。
* Infinity 乘以 0 以外的任何數(shù)字,結(jié)果為 Infinity 或 -Infinity。
* Infinity 乘以 Infinity,結(jié)果為 Infinity。
除法運(yùn)算符(/)
* 如果某個(gè)運(yùn)算數(shù)是 NaN,結(jié)果為 NaN。
* Infinity 被 Infinity 除,結(jié)果為 NaN。
* Infinity 被任何數(shù)字除,結(jié)果為 Infinity。
* 0 除一個(gè)任何非無窮大的數(shù)字,結(jié)果為 NaN。
* Infinity 被 0 以外的任何數(shù)字除,結(jié)果為 Infinity 或 -Infinity。
取模運(yùn)算符(%)
* 如果被除數(shù)是 Infinity,或除數(shù)是 0,結(jié)果為 NaN。
* Infinity 被 Infinity 除,結(jié)果為 NaN。
* 如果除數(shù)是無窮大的數(shù),結(jié)果為被除數(shù)。
* 如果被除數(shù)為 0,結(jié)果為 0。
var bResult = "25" < "3";
兩個(gè)運(yùn)算數(shù)都是字符串,所以比較的是它們的字符代碼,"2" 的字符代碼是 50,"3" 的字符代碼是 51
var bResult = "25" < 3;
字符串 "25" 將被轉(zhuǎn)換成數(shù)字 25,然后與數(shù)字 3 進(jìn)行比較
任何包含 NaN 的關(guān)系運(yùn)算符都要返回 false ("a"<15﹐a調(diào)用parseInt() 返回NaN)
等號和非等號用于處理原始值(執(zhí)行前轉(zhuǎn)換成數(shù)字值),全等號和非全等號用于處理對象
執(zhí)行類型轉(zhuǎn)換的規(guī)則如下:
* 如果一個(gè)運(yùn)算數(shù)是 Boolean 值,在檢查相等性之前,把它轉(zhuǎn)換成數(shù)字值。false 轉(zhuǎn)換成 0,true 為 1(true != 2)
* 如果一個(gè)運(yùn)算數(shù)是字符串,另一個(gè)是數(shù)字,在檢查相等性之前,要嘗試把字符串轉(zhuǎn)換成數(shù)字。("5" == 5)
* 如果一個(gè)運(yùn)算數(shù)是對象,另一個(gè)是字符串,在檢查相等性之前,要嘗試把對象轉(zhuǎn)換成字符串。
* 如果一個(gè)運(yùn)算數(shù)是對象,另一個(gè)是數(shù)字,在檢查相等性之前,要嘗試把對象轉(zhuǎn)換成數(shù)字。
遵守下列規(guī)則:
* 值 null 和 undefined 相等。
* 在檢查相等性時(shí),不能把 null 和 undefined 轉(zhuǎn)換成其他值。(undefined != 0,null != 0)
* 如果某個(gè)運(yùn)算數(shù)是 NaN,等號將返回 false,非等號將返回 true。(NaN !=NaN)
* 如果兩個(gè)運(yùn)算數(shù)都是對象,那么比較的是它們的引用值。如果兩個(gè)運(yùn)算數(shù)指向同一對象,那么等號返回 true,否則兩個(gè)運(yùn)算數(shù)不等。
全等號和非全等號(不執(zhí)行類型轉(zhuǎn)換)
x="5"+"5";
x="5"+5 ;
document.write(x);(結(jié)果都為﹕55)
undefined是未初始化的變量的值﹐沒有引用值﹐屬于未定義
var anyway; anyway屬于已定義 有默認(rèn)空值
一元運(yùn)算符﹕delete(刪除對開發(fā)者定義的對象和方法的引用﹐不能刪除原始的ECMAScript方法)
void 運(yùn)算符對任何值返回 undefined
沒有返回值的函數(shù)真正返回的都是 undefined。
一元加法本質(zhì)上對數(shù)字無任何影響。
一元加法計(jì)算字符串的方式與 parseInt() 相似
區(qū)別﹕只有一元加法才可以對八進(jìn)制與十六進(jìn)制形式的字符串(如﹕OxB﹑010)進(jìn)行轉(zhuǎn)換
一元減法計(jì)算字符串﹐將字符串轉(zhuǎn)換成近似的數(shù)字﹐再對該值求負(fù)
ECMAScript 整數(shù)有兩種類型:有符號整數(shù)和無符號整數(shù)
0 表示正數(shù),1 表示負(fù)數(shù)
正數(shù)是以真二進(jìn)制形式存儲的
負(fù)數(shù)也存儲為二進(jìn)制代碼,采用二進(jìn)制補(bǔ)碼。
計(jì)算數(shù)字二進(jìn)制補(bǔ)碼﹕絕對值求反加一
在處理有符號整數(shù)時(shí),開發(fā)者不能訪問 31 位。
var iNum = -18;
alert(iNum.toString(2));
輸出的是 "-10010"﹐非二進(jìn)制補(bǔ)碼﹐為了避免訪問31位
無符號整數(shù)的數(shù)值范圍為 0 到 4294967295
把無符號整數(shù)轉(zhuǎn)換成字符串后,只返回它們的有效位。
位運(yùn)算 NOT(~)﹐位運(yùn)算 AND﹐位運(yùn)算 OR(|)﹐無符號右移運(yùn)算(>>>)
左移運(yùn)算(<<)注意:左移運(yùn)算保留數(shù)字的符號位
位運(yùn)算 XOR由符號(^)表示
只有一個(gè)數(shù)位存放的是 1 時(shí),它才返回 1
所有整數(shù)字面量都默認(rèn)存儲為有符號整數(shù)。
只有 ECMAScript 的位運(yùn)算符才能創(chuàng)建無符號整數(shù)。
var iNum1 = 25; //25 等于 00000000000000000000000000011001
var iNum2 = ~iNum1; //轉(zhuǎn)換為 11111111111111111111111111100110
alert(iNum2); //輸出 "-26"
<!-- //-->與老的瀏覽器打交道
/* */多行注釋
邏輯 NOT 運(yùn)算符的行為如下:
* 如果運(yùn)算數(shù)是數(shù)字 0,返回 true
* 如果運(yùn)算數(shù)是 0 以外的任何數(shù)字,返回 false
* 如果運(yùn)算數(shù)是 null,返回 true
* 如果運(yùn)算數(shù)是 NaN,返回 true
* 如果運(yùn)算數(shù)是 undefined,發(fā)生錯(cuò)誤
!!sBlue﹐第一個(gè) NOT 運(yùn)算符返回 Boolean 值。第二個(gè) NOT 將對該 Boolean 值求負(fù)
邏輯 AND 運(yùn)算并不一定返回 Boolean 值:
* 如果一個(gè)運(yùn)算數(shù)是對象,另一個(gè)是 Boolean 值,返回該對象。
* 如果兩個(gè)運(yùn)算數(shù)都是對象,返回第二個(gè)對象。
* 如果某個(gè)運(yùn)算數(shù)是 null,返回 null。
* 如果某個(gè)運(yùn)算數(shù)是 NaN,返回 NaN。
與邏輯 AND 運(yùn)算符相似,如果某個(gè)運(yùn)算數(shù)不是 Boolean 值,邏輯 OR 運(yùn)算并不一定返回 Boolean 值:
* 如果一個(gè)運(yùn)算數(shù)是對象,另一個(gè)是 Boolean 值,返回該對象。
* 如果兩個(gè)運(yùn)算數(shù)都是對象,返回第一個(gè)對象。
* 如果某個(gè)運(yùn)算數(shù)是 null,返回 null。
* 如果某個(gè)運(yùn)算數(shù)是 NaN,返回 NaN。
乘法運(yùn)算符(*)
* 如果結(jié)果太大或太小,那么生成的結(jié)果是 Infinity 或 -Infinity。
* 如果某個(gè)運(yùn)算數(shù)是 NaN,結(jié)果為 NaN。
* Infinity 乘以 0,結(jié)果為 NaN。
* Infinity 乘以 0 以外的任何數(shù)字,結(jié)果為 Infinity 或 -Infinity。
* Infinity 乘以 Infinity,結(jié)果為 Infinity。
除法運(yùn)算符(/)
* 如果某個(gè)運(yùn)算數(shù)是 NaN,結(jié)果為 NaN。
* Infinity 被 Infinity 除,結(jié)果為 NaN。
* Infinity 被任何數(shù)字除,結(jié)果為 Infinity。
* 0 除一個(gè)任何非無窮大的數(shù)字,結(jié)果為 NaN。
* Infinity 被 0 以外的任何數(shù)字除,結(jié)果為 Infinity 或 -Infinity。
取模運(yùn)算符(%)
* 如果被除數(shù)是 Infinity,或除數(shù)是 0,結(jié)果為 NaN。
* Infinity 被 Infinity 除,結(jié)果為 NaN。
* 如果除數(shù)是無窮大的數(shù),結(jié)果為被除數(shù)。
* 如果被除數(shù)為 0,結(jié)果為 0。
var bResult = "25" < "3";
兩個(gè)運(yùn)算數(shù)都是字符串,所以比較的是它們的字符代碼,"2" 的字符代碼是 50,"3" 的字符代碼是 51
var bResult = "25" < 3;
字符串 "25" 將被轉(zhuǎn)換成數(shù)字 25,然后與數(shù)字 3 進(jìn)行比較
任何包含 NaN 的關(guān)系運(yùn)算符都要返回 false ("a"<15﹐a調(diào)用parseInt() 返回NaN)
等號和非等號用于處理原始值(執(zhí)行前轉(zhuǎn)換成數(shù)字值),全等號和非全等號用于處理對象
執(zhí)行類型轉(zhuǎn)換的規(guī)則如下:
* 如果一個(gè)運(yùn)算數(shù)是 Boolean 值,在檢查相等性之前,把它轉(zhuǎn)換成數(shù)字值。false 轉(zhuǎn)換成 0,true 為 1(true != 2)
* 如果一個(gè)運(yùn)算數(shù)是字符串,另一個(gè)是數(shù)字,在檢查相等性之前,要嘗試把字符串轉(zhuǎn)換成數(shù)字。("5" == 5)
* 如果一個(gè)運(yùn)算數(shù)是對象,另一個(gè)是字符串,在檢查相等性之前,要嘗試把對象轉(zhuǎn)換成字符串。
* 如果一個(gè)運(yùn)算數(shù)是對象,另一個(gè)是數(shù)字,在檢查相等性之前,要嘗試把對象轉(zhuǎn)換成數(shù)字。
遵守下列規(guī)則:
* 值 null 和 undefined 相等。
* 在檢查相等性時(shí),不能把 null 和 undefined 轉(zhuǎn)換成其他值。(undefined != 0,null != 0)
* 如果某個(gè)運(yùn)算數(shù)是 NaN,等號將返回 false,非等號將返回 true。(NaN !=NaN)
* 如果兩個(gè)運(yùn)算數(shù)都是對象,那么比較的是它們的引用值。如果兩個(gè)運(yùn)算數(shù)指向同一對象,那么等號返回 true,否則兩個(gè)運(yùn)算數(shù)不等。
全等號和非全等號(不執(zhí)行類型轉(zhuǎn)換)
您可能感興趣的文章:
- javascript之正則表達(dá)式基礎(chǔ)知識小結(jié)
- JavaScript 語言基礎(chǔ)知識點(diǎn)總結(jié)(思維導(dǎo)圖)
- extjs 學(xué)習(xí)筆記(一) 一些基礎(chǔ)知識
- javascript DOM 操作基礎(chǔ)知識小結(jié)
- 7個(gè)JS基礎(chǔ)知識總結(jié)
- Angularjs基礎(chǔ)知識及示例匯總
- javascript學(xué)習(xí)筆記(一)基礎(chǔ)知識
- JavaScript基礎(chǔ)知識之?dāng)?shù)據(jù)類型
- javascript真的不難-回顧一下基礎(chǔ)知識
- 需要牢記的JavaScript基礎(chǔ)知識
相關(guān)文章
關(guān)于eval 與new Function 到底該選哪個(gè)?
本篇文章小編將為大家介紹,關(guān)于eval 與new Function 到底該選哪個(gè)?有需要的朋友可以參考一下2013-04-04
Javascript實(shí)例教程(19) 使用HoTMetal(4)
Javascript實(shí)例教程(19) 使用HoTMetal(4)...2006-12-12
javascript parseInt 函數(shù)分析(轉(zhuǎn))
javascript的parseInt函數(shù)的一些問題分析2009-03-03
原生的強(qiáng)大DOM選擇器querySelector介紹
這篇文章主要介紹了原生的強(qiáng)大DOM選擇器querySelector一些相關(guān)知識,需要的朋友可以參考下2016-12-12

