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所有的方法和熟悉.