1、underscore.js提供了很多常用方法 注意查看 虽然自己没有去看underscore是怎么实现的 先学会用。。。
2、数组反转 array.reverse();
3、将一项添加至数组 array.push(addItem);
4、很多牵扯到json数组的操作,下面这篇文章讲了很多
http://blog.csdn.net/goflyfreely/article/details/7713954
5、从json数组中删除元素 _.reject。underscore用法
6、有时用jquery选择器选择出数组,且需要对数组中的项目进行操作,在each循环中可以使用$(this)选取当前迭代的元素。然后再操作。如下:
checkedArray.each(function(){
$(this).parent().css("display", "none"); });7、Javascript的匿名函数可以引用其创建时作用范围内的所有变量。在回调函数中this会被重新分配,在进入回调之前可以创建一个局部变量来存储外部引用。如下:
function MyClass(){ this.myClassAttribute = "A class attribute"; var myClass = this; $("span").click(function(){ myClass.myClassAttribute = "hello"; }); } // 8、jquery 中的{}与new object
{}
这个叫做对象字面量
如果new Object()
中没有传入参数,与{}
是一样的。
9、关于javascript的对象新建。下面有篇文章 ,但是我怎么觉着{} 已经是对象了呢。。而extend则是对类的扩展。
http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html
10、也就是说在我们现在的工程里用到了面向对象的思想。。。
11、
{}
is just a shortcut for new Object()
.{}是新建对象的简写
http://stackoverflow.com/questions/14051856/difference-between-and-new-object
12、在requirejs 的模块定义时要用到return 我认为是模块定义是用var关键字定义的,只在其作用域中有效,全局无效,所以要用到return。
requiresjs的模块良好的定义了一个作用域避免全局名称空间的污染。模块 需要new才能使用。
13、$(ev.currenTarget) jquery 选取当前元素 14、通常为阻止用户快速点击进行事件处理 定一个时间间隔 在此间隔内阻止事件冒泡 感觉跟android的事件处理 很类似。 15、javascript也有异步处理。。。但是我没真正用过额。。 16、backbone.js的事件处理 这篇文章 http://www.cnblogs.com/liuzhang/archive/2013/04/16/3021310.html 不过代码我还是没有看懂 有好多还是不了解 譬如这种写法:var user = function(){}; var functionName = function(){} 与 function functionName(){}的区别:原文:http://stackoverflow.com/questions/336859/var-functionname-function-vs-function-functionname 区别是第一种是在运行时定义的,第二种是在解析的时候定义的。 比如下面代码:
还有
User.records = []; User不是定义为了function了吗。??原来ECMAScript 的函数实际上是功能完整的对象。 还有用 || 进行的链式处理 这篇文章:http://stackoverflow.com/questions/7190126/jquery-equivalent-of-or-operator/7190180,这里面也提到了
jQuery.fn?? 这篇文章说明了: http://caibaojian.com/jquery-extend-and-jquery-fn-extend.html jquery的$.extend $.fn $.fn.extend的区别与用法 收获很大额 还有this的用法 。。。这个很头疼。 http://stackoverflow.com/questions/8469635/jquery-when-to-use-this-and-when-to-use-this 这篇文章。
User.bind = function(ev, callback) { var calls = this._callbacks || (this._callbacks = {}); (this._callbacks[ev] || (this._callbacks[ev] = [])).push(callback); }
这里面的this相当于User。。凌乱了。。
18、javascript是单线程的。setTimeOut 是延时处理