1. 轉換成字符串:toString()方法
2. 轉換成數字:parseInt()和parseFloat()參數必須是字符串否則返回NaN
❑parseInt()->從第一個字符開始檢索字符串直到已經不是數字
var iNum1 = parseInt(“1234blue”); //returns 1234
var iNum2 = parseInt(“0xA”); //returns 10有前導0x的默認以16進制轉換
var iNum3 = parseInt(“22.5”); //returns 22
var iNum4 = parseInt(“blue”); //returns NaN
var i1 = parseInt(“010”); //returns 8有前導0的默認以八進制轉換
var i2 = parseInt(“010”, 8); //returns 8
var i3 = parseInt(“010”, 10); //returns 10
❑parseFloat()類似parseInt的方式檢索浮點數,不同點:字符串必須以十進制表示浮點數。
var fNum1 = parseFloat(“1234blue”); //returns 1234.0
var fNum2 = parseFloat(“0xA”); //returns NaN只能十進制
var fNum3 = parseFloat(“22.5”); //returns 22.5
var f4 = parseFloat(“22.34.5”); //returns 22.34第一個小數點有效
var fNum5 = parseFloat(“0908”); //returns 908十進制
var fNum6 = parseFloat(“blue”); //returns NaN
主題:強制類型轉換:
❑ Boolean(value) –如果value是空字符串,數字0,unefined,null返回false,否則true
❑ Number(value) –類似parseInt和parseFloat,不過要轉換整個字符串!
Number(false) 0;
Number(true) 1
Number(undefined) NaN;
Number(null) 0;
Number(“5.5”) 5.5;
Number(“56”) 56;
Number(“5.6.7”) NaN;
Number(new Object()) NaN;
Number(100) 100
var s1 = String(null); //”null”
var oNull = null; var s2 = oNull.toString();//出錯,未初始化
主題:引用類型:
1. 實例化:var o = new Object();沒有參數時括號不是必需的,但是最好使用括號
2. Object類:
❑屬性:
constructor對創建對象的函數的引用:
var date = new Date();
if(date.constructor==Date)alert(“it is a date”);//return “it is a date”
prototype對該對象的對象原型的引用(實現繼承)
❑方法:
hasOwnProperty(property)判斷對象是否具有某個特定的屬性,參數用字符串指定
isPrototypeOf(object)判斷對象是否爲另一對象的原型
propertyIsEnumerable(String property) : Boolean屬性是否可用for。。。in語句枚舉
toString() : String返回原始字符串表示
valueOf() : Object返回最合適該對象的原始值實現從對象到原始值的轉換
3. Boolean類:
var ofalse = new Boolean(false);
var bff = ofalse && true;// output true布爾表達式運算中對象被轉換成true
儘量避免使用Boolean對象
4. Number類
❑方法:
valueof()返回原始值
toString(radix) : String返回字符串,radix(2~36)指定數制
toFixed([Number digits]) : String返回有digits個小數的字符串形式
toExponential([Number digits]) : String返回有digits個小數的科學計數法的字符串形式
toPrecision([Number precision]) : String返回最有意義的形式,precision指定小數位數
❑注意:toFixed,toExponential,toPrecision方法都會進行舍入操作,以便用正確的小數位數正確地表示一個數。儘量避免直接使用Number類的對象
5. String類
❑屬性:
length : Number字符串長度
❑方法:
charAt(index) : String如果index越界返回空字符串
charCodeAt( index) : Number返回指定索引的字符代碼
concat(String string2...stringN) : String返回新串,原串不變
indexOf(String searchValue, [String fromIndex]) : Number從字符串的開頭(位置0)開始檢索子串
lastIndexOf(String searchValue, [String fromIndex]) : Number從字符串的結尾開始檢索子串
localeCompare(String target) : Number比較
slice(beginSlice, endSlice) : String取子串,參數爲負數的時候表示從字符串最後開始
substring(Number indexA, [Number indexB]) : String取子串,參數爲負數是做0處理,並且把兩個參數中較小的做起始位
substr(Number start, Number length) : String取子串,參數爲負數時從結尾開始
主題:運算符:
1.delete:刪除自定義的對象屬性,數組元素
2.void:對任何值都返回undefined
3.位運算符:
所有整數字面量都默認存儲爲有符號整數。只有用ECMAScript的位運算符才能創建無符號整數。
~按位非,結果爲:數字求負再減一
&與,|或,^異或,<<左移,>>有符號右移,>>>無符號右移(對於負數將其看作無符號 數,通常都很大)
4. Boolean運算符
邏輯NOT(!):
如果運算數是對象,返回false;
如果運算數是數字0,返回true;
如果運算數是0以外的任何數字,返回false; 如果運算數是null,返回true;
如果運算數是NaN,返回true;
如果運算數是undefined,發生錯誤。
邏輯AND運算符(&&)
如果第一個操作數未定義過,出錯
否則如果第一個操作數是false,返回false
否則如果第一個操作數是null/undefined/NaN/0返回null/undefined/NaN/0
否則如果第二個操作數未定義,出錯
否則返回第二個操作數
邏輯OR運算符(||)
如果第一個操作數未定義過,出錯
否則如果第一個操作數是true,返回true
否則如果第二個操作數未定義過,出錯
否則返回第一個操作數不在null/undefined/NaN/false/0中,返回第一個操作數
否則返回第二個操作數即第一個操作數是null/undefined/NaN/false/0時返回第二個操作數
5.乘性運算符
乘法運算符
如果兩個運算符都是數字,正常運算
如果某個運算數是NaN,結果爲NaN
Infinity*0結果爲NaN
Infinity*0以外數字結果爲Infinity,符號由第二個運算符的符號表示
Infinity*Infinity結果爲Infinity
除法運算符(/)
如果運算數都是數字,執行常規的除法運算
如果某個運算數是NaN,結果爲NaN。
Infinity被Infinity除,結果爲NaN。
Infinity被任何數字除,結果爲Infinity。
0除一個非無窮大的數字,結果爲NaN。
Infinity被0以外的任何數字除,結果爲Infinity或-Infinity,由第二個運算數的符號決定。
取模運算符(%)
如果運算數都是數字,執行常規的算術,返回除法運算得到的餘數。
如果被除數是Infinity,或者除數是0,結果爲NaN。
Infinity被Infinity除,結果爲NaN。
如果除數是無窮大的數,結果爲被除數。
如果被除數爲0,結果爲0。
5.加性運算符
加法運算符(+)
如果運算數都是數字,執行常規的算術
如果有一個運算數是字符串,則把另一個轉換成字符串,返回連接後的字符串
某個運算數是NaN,結果爲NaN。
Infinity加Infinity,結果爲Infinity。
-Infinity加-Infinity,結果爲-Infinity。
Infinity加-Infinity,結果爲NaN。
+0加+0,結果爲+0。
-0加+0,結果爲+0。
-0加-0,結果爲-0
減法運算符(-)
如果運算數都是數字,執行常規的算術
某個運算數是NaN,結果爲NaN。
Infinity減Infinity,結果爲NaN。
-Infinity減-Infinity,結果爲NaN。
Infinity減-Infinity,結果爲Infinity。
-Infinity減Infinity,結果爲-Infinity。
+0減+0,結果爲+0。
-0減-0,結果爲+0。
-0減+0,結果爲-0。
某個運算數不是數字,結果爲NaN。
6.關係運算符(>,<,<=,>=)
如果兩個都是字符串,按照其字符代碼進行比較小寫字母在大寫字母之前
如果有一個數字,先把字符串轉換成數字再比較
如果有一個是NaN返回false
7.等性運算符(==,!=,===,!==)
==,!=
如果一個運算數是Boolean值,將false轉換爲0,true轉換爲1
如果一個是字符串,一個是數字,把字符串轉換成數字
如果一個是對象,一個是字符串,將對象轉換成字符串
如果一個是對象,一個是數字,把對象轉換成數字
null和undefined相等
null和undefined不做轉換
如果有一個NaN,不相等
如果都是對象,比較兩者的引用值,指向同一對象則相等
===,!==:不進行類型轉換,直接進行比較
主題: 語句:
1. if語句,do-while語句,while語句
2. for語句:for(var i = 0;i < 10; i++){};alert(i);//output 10i在循環之外仍可以使用
3. for-in語句:用於枚舉對象的屬性,對於數組枚舉的是索引!
4. 語句可以加標籤
5. break,continue,支持標籤
6. with語句-不要使用!
7. switch語句:switch可用於字符串,case情況可以使用變量
主題: 函數:
1. 無重載:
可以用同一個名字在同一個作用域中定義多個函數,但只有最後一個起作用
2. arguments對象(Function類的屬性):模擬重載
3. Function類:函數是對象
Function構造函數:不要使用
var function_name = new Function(argument1, argument2,..,argumentN, function_body);最後一個參數是字符串形式的函數體,前面函數的參數
屬性
length:函數定義是聲明的參數個數
valueof和toString默認返回函數的源碼