变量声明的方法
var、const、let、class、function、import
- var、let和const的区别
- let
- 不允许重复声明
- 块级作用域
- 不存在变量提升
- 不影响作用域链
- const
- 声明必须赋初始值
- 不允许重复声明
- 不能二次修改值
- 块级作用域
- let
函数
创建函数:
- function foo(){} 关键字/字面量
- var foo = function(){} 函数表达式
函数是一组执行特定任务(具有特定功能)的,可以重复使用的代码块
arguments 实参列表(伪数组)
实参>形参,多出来的实参,省略不记,
形参>实参,多出来的形参为undefined或者默认值
… 剩余运算符和扩展运算符
function(a,...arg){
console.log(...arg)
}
在形参里面的是剩余运算符,会将多余的实参存储到arg里面
在执行体内的是扩展运算符,将arg里面的内容展开
return
返回函数执行结果,
如果没写return或者写了return但是没有内容,则函数执行完后,返回的值就为undefined,
自调用函数/立即执行函数 IIFE(Immediately Invoked Functions Expressions)
函数在页面载入后或者之前就自行调用,无需借助其他函数或方法来启动;
声明的三种方式:
- (function(){})()
- (function(){}())
- +/~/!/- function(){}()
var a = 20;
(function () {
var a = 50
a = 10;
console.log(a);
}())
console.log(a);
避免了外界访问此 IIFE 内的变量,而且又不会污染全局作用域。
匿名函数
- function(){} //不能单独这样写,
- ()=>{}
如果形参只有一个变量,可以省略小括号,如果return 只有一个语句, return和大括号都可以省略 - var a = function(){}
回调函数
当函数被当做参数传入,这个函数就是回调函数