1 ecmascript中所有變數都採用晚繫結的方法,不支援早繫結。晚繫結是指我們的**在執行時再檢查物件是否提供了我們所需要的方法和屬性。
2 array物件就像乙個棧,提供了push和pop方法。array物件又像乙個佇列,提供了shift和push方法。
3 物件有為三種:本地物件、內建物件和宿主物件。內建物件只有兩個:global和math,都屬於本地物件。
4 ecmascript只存在公用作用域
5 定義類或物件一般使用「建構函式+原型」方式:用建構函式定義所有非方法的成員,用原型定義方法成員。
實現繼承一般使用「物件冒充(object masquerading)+原型鏈」方式:用物件冒充繼承建構函式的所有成員,用原型鏈繼承原型的方法(用了原型鏈,instanceof運算子才有效)。
function animal(animalname)6 改進字串處理(將第一段改進為第二段,節約一半時間):animal.prototype.showname = function()
function bird(birdname, birdcolor)
bird.prototype = new animal();
bird.prototype.showcolor = function()
var bird = new bird("woohu", "red");
bird.showname();
bird.showcolor();
**一:
var str = "hello";**二:str += "world";
function stringbuffer()7 極晚繫結:你甚至可以在物件例項化後在定義它的方法,如下stringbuffer.prototype.tostring = function()
var o = new object();不過不建議使用極晚繫結,因為很難對其進行跟蹤和記錄。object.prototype.fn = function();
o.fn();
js基礎知識(二)
date.now 獲取當前時間毫秒數 var dt new date dt.gettime 獲取毫秒數 dt.getfullyear 年 dt.getmonth 月 0 11 1 dt.getdate 日 0 31 dt.gethours 小時 0 23 dt.getminutes 分鐘 0 59 ...
JS 基礎知識(二)
1 變數提公升問題 view code 這段 會輸出undefined,為什麼呢?這就涉及到js中的乙個變數提公升問題。其實上面的fun函式 相當於 function fun 所以才會列印出undefined。在函式體內變數的宣告會被提公升到最頂端。2 變數生命問題 var a b c 20 等價於...
js基礎知識易錯點(一)
最近替另乙個專案招人,要求基礎知識好,隨便問了一些基礎題,發現了一些易錯的點,總結一下。1 判斷乙個空陣列 var arr 1 json.stringify arr 2 arr instanceof array arr.length 0 3 array.prototype.isprototypeof...