1.IIFE (Imdiately Invoked Function Expression 立即执行的函数表达式)
+function ($) {
}(window.jQuery);
其它写法:如
a.(function () //匿名函数
{}
)();
b.! function ($) {
}(window.jQuery);
c.void function(){}()
最佳实践-性能优化:
$(function(){
});//这段代码会在DOM加载完成后初始化Jquery代码
这种写好就是原生js
$(document).ready(function(){
// 在DOM加载完成时初始化jQuery代码。
});
结合IIFE的最佳实践,更好的写法是,立即执行document ready
(function ($) {
$(function(){
})
})(window.jQuery)
2.JavaScript简单数据类型有:undefined,null,boolean,number和string
复杂数据类型有:object,function
值类型有:数值,布尔值,null,undefined
引用数据类型有:对象,数组,函数
//demo01.js
var a = 20;//值类型
var b = a;
b = 30;
console.log(a);//输出20
这就像把房子卖给别人了,交了地契,和你半毛钱关系都木有!!!
// demo02.js
var m = { a: 10, b: 20 }
var n = m;
n.a = 15;
console.log(m.a);//输出15
这就像给房子配了另一把钥匙,m先生和n女士对房子的装饰改变都会对房子有影响
追究本质,值类型会在内存中新分配一个地址,地址指针指向了新的地址,而引用数据类型是同一个内存地址,对数据的改变会通过地址指针找到内存地址改变它
更好理解值类型与引用数据类型的区别,http://www.jianshu.com/p/996671d4dcc4内存空间详细图解
3.Javascript scope‘域’
https://my.oschina.net/bgmemo/blog/195761