前端笔记(不定时更新)
2013-05-26 12:16
225 查看
1、字符串反转
2、求数组中的最大值或者最小值
3、js 中onload和jquery的ready()区别
4、apply与call的区别
Function.apply(obj,arr); apply第一个参数将替代Function里的this,而后面的arr将会被拆分出每一个值传递给Function当做参数。
Function.call(obj,param1,param2,param3,.....); call 的obj和apply一样,区别在参数的传递,后面的参数会按顺序传递给Function当做参数。
结论:apply第二个参数只接受数组,如果你有多少个参数,都要先组装成一个数组,再传递进去(通常结合arguments直接传递,即第二个参数直接传arguments).call则是从第二个参数开始是什么样的参数,几个参数,都原封不动的传递给Function。个人觉得call比较好用,而且参数传递比较直观。
看例子加深理解
5、继承封装方法
6、js局部变量
js的作用域是有函数划分的,而不是块儿
7、条件判断的好习惯
//字符串反转 var str = "abcdefg"; var result = str.split("").reverse().join(""); //结果:gfedcba alert(result);
2、求数组中的最大值或者最小值
var arr = [0,3,9,2,33]; //不能直接用Math.max(arr);max不支持数组,只支持max(0,3,9,2,33) //利用apply即可将arr拆成多个参数,并传递给max,这样就变相的执行了Math.max(0,3,9,2,33); var result = Math.max.apply(null,arr); //结果:33 alert(result);
3、js 中onload和jquery的ready()区别
//onload是在页面完全载入才会触发,ready则是在DOM结构加载完即可执行 //如在载入一个图片或者视频资源很多的页面时,onload必须在这些图片资源全部下载下来之后才会执行,很容易出现“无响应”,“白屏”,体验非常不好。 //而ready则只要求你所有的DOM(标签)只要加载完了就可以执行,就算此时图片资源还没下载完,照样可以执行
4、apply与call的区别
Function.apply(obj,arr); apply第一个参数将替代Function里的this,而后面的arr将会被拆分出每一个值传递给Function当做参数。
Function.call(obj,param1,param2,param3,.....); call 的obj和apply一样,区别在参数的传递,后面的参数会按顺序传递给Function当做参数。
结论:apply第二个参数只接受数组,如果你有多少个参数,都要先组装成一个数组,再传递进去(通常结合arguments直接传递,即第二个参数直接传arguments).call则是从第二个参数开始是什么样的参数,几个参数,都原封不动的传递给Function。个人觉得call比较好用,而且参数传递比较直观。
看例子加深理解
//apply方式************************************************************ //普通的执行函数方式 var apply_nn = function(a,b){ alert(a); // "a" alert(this);//window object }; var apply_data = { mm : function(a,b){ apply_nn(a,b); //apply_nn.apply(this,arguments); } }; apply_data.mm("a","b"); //应用了apply执行回调函数方式 var apply_nn = function(a,b){ alert(a); // "a" alert(this);//object object 即apply_data }; var apply_data = { mm : function(a,b){ //apply_nn(a,b); apply_nn.apply(this,arguments); } }; apply_data.mm("a","b"); //call方式************************************************************ //普通的执行回调函数方式 var call_data = { mm : function(callback,a,b){ callback(a,b); // callback.call(this,a,b); } }; var call_callback = function(a,b){ alert(this);//window object }; call_data.mm(call_callback,"a","b"); //应用了call执行回调函数方式 var call_data = { mm : function(callback,a,b){ // callback(a,b); callback.call(this,a,b); } }; var call_callback = function(a,b){ alert(this);//object object 即call_data对象 }; call_data.mm(call_callback,"a","b");
5、继承封装方法
/* Extend function. */ function extend(subClass, superClass) { //创建一个空F用于转移内存空间 var F = function() {}; F.prototype = superClass.prototype; subClass.prototype = new F(); subClass.prototype.constructor = subClass; }
6、js局部变量
js的作用域是有函数划分的,而不是块儿
var too="test"; if(true){//这是在块中的定义,此时还是全局变量 var too="new test"; } alert(too=="new test");//return true;
7、条件判断的好习惯
//if(a==3) 应该写成if(3==a) 。因为我们常会把==写成1个=,如果把变量写在 //右边时只写了1个=,就会报编译错误,这样就能及时发现错误。
相关文章推荐
- 工作随记2-前端开发常见报错处理(不定时更新)
- 【前端学习笔记】项目经验积累(不定期更新)
- Hibernate 的学习笔记(温故而知新)— — 不定时更新
- 前端开发个人笔记,那些小的知识点(持续更新)
- 开发笔记(不定时更新)
- HTML学习笔记(不定时更新)
- 笔记(不定时更新)
- mysql颠覆实战笔记(五)--商品系统设计(二):定时更新商品总点击量
- Github学习笔记-不定时更新
- 前端术语笔记(待更新)
- mysql笔记(五)--商品系统设计(二):定时更新商品总点击量
- 以后会不定时更新c++ primer第五版的学习笔记,一起成长
- 前端及移动端学习 笔记 -待更新
- Oracle常用(学习笔记,不定时更新……)
- Head First 设计模式学习笔记(不定时更新)
- linux学习笔记-不定时更新
- Java学习笔记(二)不定时更新
- 定时更新--笔记
- 前端学习常用站点总结 不定时更新
- 前端学习网站资源(不定时更新)