在Javascript中只有五種簡單類型,分別爲null,undefined,boolean,String和Number。一種複雜類型:object。代碼類型只有一種形式就是function。javascript
可使用typeof函數java
例如 var name = 'mdemo';console.log(typeof name);// 'string'還能夠用instanceof
Push()尾部添加 pop()尾部刪除
Unshift()頭部添加 shift()頭部刪除數組
javascript和其餘語言不一樣,不存在花括號之間的塊級做用域,而是用函數來進行做用域的劃分。瀏覽器
concat--將兩個數組鏈接起來splice--能夠用來刪除、添加、替換安全
Var ev = ev || window.event
document.documentElement.clientWidth || document.body.clientWidth
Var target = ev.srcElement||ev.target 閉包
找到要刪除的元素的索引,而後使用splice(index,1)刪除app
不是數組,typeof 能夠看到是 object類型,並且arguments還有callee方法,因此不會是數組的。函數
在個人前面的文章中有詳細的介紹。閉包性能
讓利用事件冒泡的原理,讓本身的所觸發的事件,讓他的父元素代替執行!學習
canceBubble return false
前者會自動轉換類型
後者不會
在函數代碼中,使用特殊對象 arguments,開發者無需明確指出參數名,經過使用下標就能夠訪問相應的參數。
arguments雖然有一些數組的性質,但其並不是真正的數組,只是一個類數組對象。其並無數組的不少方法,不能像真正的數組那樣調用.jion(),.concat(),.pop()等方法。
在代碼中出現表達式-"use strict"; 意味着代碼按照嚴格模式解析,這種模式使得Javascript在更嚴格的條件下運行。
好處:
- 消除Javascript語法的一些不合理、不嚴謹之處,減小一些怪異行爲;
- 消除代碼運行的一些不安全之處,保證代碼運行的安全;
- 提升編譯器效率,增長運行速度;
- 爲將來新版本的Javascript作好鋪墊。
壞處:
一樣的代碼,在"嚴格模式"中,可能會有不同的運行結果;一些在"正常模式"下能夠運行的語句,在"嚴格模式"下將不能運行。
this老是指向函數的直接調用者(而非間接調用者);
若是有new關鍵字,this指向new出來的那個對象;
在事件中,this指向觸發這個事件的對象,特殊的是,IE中的attachEvent中的this老是指向全局對象Window;
它的功能是把對應的字符串解析成JS代碼並運行;
應該避免使用eval,不安全,很是耗性能(2次,一次解析成js語句,一次執行)。
由JSON字符串轉換爲JSON對象的時候能夠用eval,var obj =eval(‘(‘+ str +’)’);
(1)建立一個空對象,而且 this 變量引用該對象,同時還繼承了該函數的原型。
(2)屬性和方法被加入到 this 引用的對象中。
(3)新建立的對象由 this 所引用,而且最後隱式的返回 this 。
apply()函數有兩個參數:第一個參數是上下文,第二個參數是參數組成的數組。若是上下文是null,則使用全局對象代替。
如:function.apply(this,[1,2,3]);
call()的第一個參數是上下文,後續是實例傳入的參數序列。
如:function.call(this,1,2,3);
JavaScrip能夠採用構造器(constructor)生成一個新的對象,每一個構造器都擁有一個prototype屬性,而每一個經過此構造器生成的對象都有一個指向該構造器原型(prototype)的內部私有的連接(proto),而這個prototype由於是個對象,它也擁有本身的原型,這麼一級一級直到原型爲null,這就構成了原型鏈.
prototype是function對象中專有的屬性。
__proto__是普通對象的隱式屬性,在new的時候,會指向prototype所指的對象;
__proto__其實是某個實體對象的屬性,而prototype則是屬於構造函數的屬性。
__proto__只能在學習或調試的環境下使用。這裏抓住兩點:
- 構造函數經過 prototype 屬性訪問原型對象
- 實例對象經過 [[prototype]] 內部屬性訪問原型對象,瀏覽器實現了 __proto__屬性用於實例對象訪問原型對象
Object 爲構造函數時,是Function的實例對象;Function爲構造函數時,Function.prototype 是對象,那麼他就是Object的實例對象。