jQuery学习笔记

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");//true
console.log(25=="0x19");//true
console.log(1==truen);//true
console.log(0==false);//true
console.log(ture==undefined);//true
------------------粗暴的分割线--------------------
console.log(5==="5");//false
console.log(25==="0x19");//false
console.log(1===truen);//false
console.log(0===false);//false
console.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();//3
A(10);//12
A(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){});//循环遍历除了自身以外的元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值