es6:https://www.jianshu.com/p/287e0bb867ae
es6视频:https://www.imooc.com/video/16698
安装es6-webpack:https://github.com/cucygh/es6-webpack
作用域隔离es5: ;((fcuntion())()) 立即执行函数
作用域隔离es6: {}
函数声明: function fnName() {...} ;
使用 function 关键字声明一个函数,再执行一个函数名,叫函数声明。
函数表达式: var fnName = function() { ... } ;
使用 function 关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式,这是最常见的函数表达式语法形式。
匿名函数: function() { ... } ;
使用 function 关键字声明一个函数,但未给函数命名,所以叫匿名函数,匿名函数属于函数表达式,匿名函数有很多作用,赋予一个变量则创建函数,赋予一个事件则成为事件处理程序或创建闭包等等。
立即执行函数的两种常见形式:( function(){…} )()和( function (){…} () ),一个是一个匿名函数包裹在一个括号运算符中,后面再跟一个小括号,另一个是一个匿名函数后面跟一个小括号,然后整个包裹在一个括号运算符中,这两种写法是等价的。要想立即执行函数能做到立即执行,要注意两点,一是函数体后面要有小括号(),二是函数体必须是函数表达式而不能是函数声明。
(function(a) {
console.log(a); //使用()运算符,打印出123
})(123);
(function(a) {
console.log(a); //使用()运算符,打印出1234
}(1234));
!function(a) {
console.log(a); //使用!运算符,打印出12345
}(12345);
+function(a) {
console.log(a); //使用+运算符,打印出123456
}(123456);
-function(a) {
console.log(a); //使用-运算符,打印出1234567
}(1234567);
var fn = function(a) {
console.log(a); //使用=运算符,打印出12345678
}(12345678);
2、使用立即执行函数的好处
通过定义一个匿名函数,创建了一个新的函数作用域,相当于创建了一个“私有”的命名空间,该命名空间的变量和方法,不会破坏污染全局的命名空间。此时若是想访问全局对象,将全局对象以参数形式传进去即可
ES3、ES5 this的指向:该函数被调用的对象,也就是说函数执行,哪个对象调用了function this指向谁
网友评论