箭头函数
箭头函数抛弃了糟粕,放弃了argument
和this
- 里面的
this
就是外面的this
(默认为window
) - this对于箭头函数没有任何特殊意义,就是一个普通变量名,外面如果声明了this是什么,那就是什么
- 就算加了
call
也没有用
- 箭头函数也没有定义
arguments
arguments
是打印出所有伪数组
立即执行函数
- 只有JS有的东西,但现在用得很少
1.问题
以前只有var的时候,想要声明局部变量只能调用一个函数
缺点:为了声明局部变量a而声明了一个全局函数fn
2.解决办法
- 函数没有名字就不是全局函数
- 不给函数取名字,一个匿名函数,然后在声明后面直接加(),直接调用匿名函数
- 但这样JS认为不合法,因此要在这个函数前面加一个操作运算符
! function (){//前面的操作符可以:+ - !
var a = 1
console.log(a)
}()
- 推荐使用
!
,不会有任何问题 - 永远不要用
()
做立即执行函数,因为()
会向上看,和上面那一行连起来,如上面代码返回值为undefined
,就会变成undefined(function....)
,把undefined当成了一个函数
3.新版JS如何造一个局部变量
- 用
let
和{}