jQuery学习笔记

来源:互联网 发布:淘宝与京东 编辑:程序博客网 时间:2024/06/05 10:50

1、理解null:将它当做对象的占位符。

2、编写规范:

//不好的写法var obj=new  Object();obj.title="1";obj.titles="123";//好的写法var obj={    title="1",    titles="123"};----------------------------------//不好的写法var arr=new Array("red","blue");//好的写法var arr=["red","blue"];

3、for-in循环是用来遍历对象的,不应该用来遍历数组成员。

var arr=[1,2,3],n;for(n in arr){    console.log(n);}

4、使用===和!==做判断时不会发生强类型转换

console.log(5=="5");//trueconsole.log(25=="0x19");//trueconsole.log(1==truen);//trueconsole.log(0==false);//trueconsole.log(ture==undefined);//true------------------粗暴的分割线--------------------console.log(5==="5");//falseconsole.log(25==="0x19");//falseconsole.log(1===truen);//falseconsole.log(0===false);//falseconsole.log(ture===undefined);//false

5、jQuery定义了两个全局变量:$和jQuery。

6、对于带有中文的JavaScript文件进行源码压缩时还需要对文件进行Unicode转码,防止压缩后的文件不会因为编码的问题产生BUG。

7、严格模式:“use strict”,这是一个编译指示,用于告诉支持的JavaScript引擎切换到严格模式。这是为不破坏ECMAScript3语法而特意选定的语法。严格模式下ECMAScript3中的一些不确定行为将得到处理,即是为了JavaScript语言中容易出错的地方加了限制。

8、typeof检测给定的变量的数据类型,它是操作符不是函数,他返回的值有:undefined、boolean、string、number、object和function。

9、JavaScript没有重载。

10、在函数内部有两个特殊的属性:arguments和this,其中arguments时类数组对象,包含传入函数中的所有的参数,arguments有一个callee属性,该属性是一个指向自身函数的指针。

function a(){}也可以等价于arguments.callee()-------------------粗暴的分割线-----------------------//解耦合性的递归函数function a(num){    if(num<1){return 1;}    else{        return num*arguments.callee(num-1);//return num*a(num-1);    }}

11、在默认情况下,所有的原型对象(prototype)都有一个constructor(构造函数)属性,这个属性包含一个指向prototype属性所在函数的指针。即Person.prototype.constructor指向Person。

12、闭包是指有权访问另一个函数作用域中的变量函数。

13、模仿块级作用域

(function(){    //这里是块级作用域,即私有作用域,不必担心搞乱全局作用域})();

14、事件委托:利用事件冒泡,指定一个事件处理程序来管理某一类型的所有事件。
(1)最适合采用事件委托技术的事件有:click、mousedown、mouseup、keydown、keyup和keypress;
(2)不合适用于:mouseover、mouseout
(3)优点:
1、可以快速访问;
2、处理程序所需的时间小;
3、占用内存空间小;

具体详情可以查阅: http://www.diguage.com/archives/71.html

15、子对象中的属性与父对象的属性名相同的话,会被新创建的同名属性覆盖。

16、原型链:比如new Date创建的对象属性的同时也继承Data.prototype和Object.prototype,这一系列的链接称为“原型链”。

17、函数参数设置默认值:

function A(){    var a=arguments[0]?arguments[0]:1;    var b=arguments[1]?arguments[1]:2;    return a+b;}----------------------------------------------A();//3A(10);//12A(10,10);//20

18、序列化对象:是指对象的状态转换为字符串,也可以将字符串还原为对象。

var obj={x:1,y:{z:[false,null,""]}};var s=JSON.stringify(obj);//序列化,输出“{x:1,y:{z:[false,null,""]}}”字符串var p=JSON.parse(obj);//对象化,p是obj的深拷贝

19、

(1)new Array等价于Array.prototype(2)new Date等价于Date.prototype(3)obj.title等价于obj[title]-------------------------------(4)function a(s){    if(s===undefined){        s=[];    }    return s;}等价于 var s=s||[];_______________________________(5)eq(-2)//倒数第二个元素(6)$(this).get(0)等价于$(this)[0](7)$("#id>span").not($(this)).each(function(i){});//循环遍历除了自身以外的元素
0 0