ES6

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指向谁

你可能感兴趣的:(ES6)