由于這兩周在開發(fā)H5推廣模板,所以結(jié)合實戰(zhàn)在學(xué)習(xí)js基礎(chǔ)。由于js知識點比較零碎,故總結(jié)一些零碎的知識點。
主要學(xué)習(xí)內(nèi)容:
- ECMAScript 基礎(chǔ)
- js對象基礎(chǔ)
- 繼承
ECMAScript 基礎(chǔ)
語法:
- 區(qū)分大小寫
- 變量弱類型
- 每行結(jié)尾;可有可無
- 注釋和java和PHP相同
ECMAScript五種原始類型
Undefined
變量未初始化時,該變量的默認(rèn)值為Undefined;Null
Undefined是從Null中派生出來的; null == undefined //trueBoolean
只要是對象,Boolean返回的就是true。0和null值默認(rèn)為falseNumber
toString()方法可分為默認(rèn)模式和基模式;
如:toString(16);String
使用 typeof var 可得var的變量類型
強制類型轉(zhuǎn)換:在解決null這個特殊值時,比較有趣。
var s1 = String(null); //"null"
var oNull = null;
var s2 = oNull.toString(); //won't work,causes an error
運算符
js中的浮點數(shù)乘法運算都是先擴大為整數(shù)再運算,而后除以相應(yīng)的倍數(shù),故在乘法的結(jié)果中也會出現(xiàn)無限循環(huán)小數(shù)。保險做法為先將運算數(shù)擴大百倍再將結(jié)果縮小百倍。
Function類
無重載(利用arguments可實現(xiàn)重載機制,arguments為參數(shù)可變數(shù)組)
函數(shù)也可作為參數(shù)傳遞
js對象基礎(chǔ)
對象的廢除
- 當(dāng)再沒有對對象的引用時,該對象被廢除。
- 當(dāng)強制將對象的引用設(shè)為null值時,可以強制性廢除對象。
對象類型
本地對象(獨立于宿主環(huán)境的ECMAScript實現(xiàn)提供的對象)
Array:
join()實現(xiàn)鏈接數(shù)組元素
push() :數(shù)組尾部增加一個元素,可傳遞多個元素,但總是習(xí)慣與傳遞一個參數(shù)且使用多次。
pop():數(shù)組尾部刪除一個元素。
shift():刪除數(shù)組中的第一個位置元素。
unshift:增加一個元素到第一個位置。Date:存在Date類,且有多種表現(xiàn)格式。
-
內(nèi)置對象(由ECMAScript實現(xiàn)提供的,獨立于宿主環(huán)境的所有對象,在ECMAScript程序開始執(zhí)行時開始出現(xiàn);每個內(nèi)置對象都是本地對象;)
- Global:根本不存在。
默認(rèn)的方法為global對象的方法,如isNaN();
encodeURI()
encodeURIComponent():想較于encodeURI,將特殊字符全部轉(zhuǎn)化。
decodeURI()
decodeURIComponent():輸出上面兩種URI編碼。
escape()
unescape():盡量避免使用,只能對ASCII正確編碼。不能對Unicode全部編碼。
eval():解釋js的程序,慎重使用,很可能代碼注入。Math:提供各種處理函數(shù)。
宿主對象
定義類或者函數(shù):
工廠方式:每次創(chuàng)建一個對象,直接返回對象。
構(gòu)造函數(shù)方式:使用this。
原型方式:
混合的構(gòu)造函數(shù)/原型方式:構(gòu)造變量,原型初始化函數(shù)。修改對象:
Object.prototype.function();
Object.prototype.var;繼承
對象冒充
call(this,var a1,var a2);
apply(this,new Array("",""));