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