JS 入門1

1, a||b, 返回的是第一個true的值. obj || ss, 如果obj是有的,不是false,返回obj,如果ss是有,obj沒有,返回ss.

2, 如果 在任何函數中 a=100, 這個a是全局變量. var a =100,a就是局部變量.

3, 如果 函數fun沒有返回值,  var s = fun(xx); 這個s是undefined.

4, var fun(aa){xx};

 var s = fun;

s就是 fun(aa){xx}; 只有當s()纔會執行. 有()就執行.

5, parseInt("655dd"); 返回是655; parsheInt("ds333"); 返回時NaN;

6, eval("sss"); 會把sss按照js執行.就是去掉字符串,按js執行字符串內容.

7, 把數字轉化爲2進制 num.toString(2);

8. 字符串.link("www.bd.cn"); == <a href="www.bc.cn">字符串..;就是給字符串加鏈接.

9,查看一個對象的構造函數 obj.constructor;

10, Math.random(); 生成0-1的隨機數.

11,數組 a.concat(b), 得到新的數組,兩個聯合.

12, 數組 a.join(":"); 會把a中的元素一個一個按照:隔開

13,數組 a.sort()可以排序?? a.reverse()把a中的元素顛倒順序.

14,obj.opener.xx opener是調用這個opener屬性的對象的opener.

15,setTimeout(fn,time); 隔time後執行一次.   

setInterval(fun,time); 每隔time後執行一次.

要是需要清除,1,得到這個返回值var t=window.setInterval(fun, time); 2,  window.clearInterval(t);

16, 在函數中調用函數,funa(){funb(),c}; 用的是funb()的返回值. 如果要用這個函數 funa(){funb,xx};

17, window.history||history.go(n); n=-1回退1個. 1前進.

18, aDOM節點插入節點b a.appendChild(b); 

??a.innsertBefore(b,ref); 在ref節點前插入b.?? a可能必須要是b,ref的父節點.

19, 父節點fa.removeChild(son節點); 只能刪除直接子節點,孫子不能刪.

20, b.parentNode得到父節點. 刪除本身 b.parentNode.removeChild(b);

21,document.append();渲染一次. 提高效率

22,style.readOnly='true'; 所有的都有style. style的有的屬性有-,把-去掉,用駝峯字

23, IE的事件全局變量 event, 其他的e;

24, keydown, keyup是所有鍵都監聽. keypress是a,b這些有效果的字的鍵纔有效果. 

按鍵按一次會有keydown keypress keyup3事件.如果是功能鍵,就沒有keypress.

25, ie attachEvent("事件名",fun)   其他 addEventListener("事件名",fun,boolean true是向上冒泡,false是不冒泡); 這是加事件. 取消時間: detachEvent("",fun);

26,IE特有的 document.all 可以判斷是不是IE,進而寫函數

27, 阻止鼠標事件 其他  e.preventDefault();IE  e.returnValue=false; 把這個寫在函數裏面,這個事件就不能調用了,函數也肯定不會執行了.

28, firefox如果調用函數,第一個會傳入事件對象e.

29,可變參數: function say(...){}; ...是可變參數;

30,得到參數arguments ; 寫 arguments就是所有參數的集合 arguments[0]就是第一個參數;

31, 新建一個對象並賦值:  var obj1 = new Object(); obj.v="給這個obj的v賦值"; var ojb2 = {v:"我這也是給obj2對象的v賦值"};

32,function b(){alert (this.v);} 調用這個函數的時候 b(); == window.b(); 這個this就是指向window, 這個function是window這個類的.這時候輸出時undefined; 如果用b.call(b1); 就會吧window對象換成b1,這個this指向b1了. 如果b1給v賦過值,就會輸出b1的v的值;

33, 定義一個類 : 

function Animal(name){

this.name=name;

 this.say=function(){}

};

如果是 var s =Animal()就是這個function的返回值,是undefine,

如果是 var s = new Animal("xxx");就是對象.

33,繼承:

function classA(one){

this.one=one;

this.showOne=function(){alert(this.one);

}

function classB(two){

this.aaa = classA; //這句話的意思就是把classA的this的指向,從window變成是new出來的哪個對象了

this.aaa(two);

或者等價於 

var b = this; 

b.aaa=classA; //calssA的this就是這個b, 所以把classA的函數的作用域指向b了,b就有classA的所有方法了.

b.aaa(two);

或者等價於

classA.call(this,two); //就是吧classA的this轉化爲當前classB的this, 他的classA(one)中的one,第一個參數,傳入的值是two.

}

classB就繼承了classA,有A的屬性one, A的方法 showOne,而且運行的時候跳出的是two;

objb = new classB("xxx");

objb.showOne(); 跳出xxx;

35, 原型鏈 

function calssC(third){};

classC.prototype=objB;

就是把class的原型指向一個對象,這樣可以一直指向下去.就是xxx.prototype=xx;就是原型鏈.xxx有xx所有的方法和熟悉.


發佈了25 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章