Correcting teacher:PHPz
Correction status:qualified
Teacher's comments:总结的不错, 继续加油
// * 1.变量 let
//声明+初始化(第一次复制)
let a = 10
console.log('a =',a)
//更新第二次及以上的赋值,不用加let
a = 20
console.log('a =',a)
console.log('---------------')
// * 2.常量 const
const USER_NAME = '张三'
console.log('USER_NAME=', USER_NAME)
// 常量禁止更新,不能继续赋值更新
//let,const,首选用const,除非确定会更新,而var始终不用
// * 1.命名函数
//调用:声明前成功,说明函数声明提升到了代码的顶部
console.log(sum1(30, 40))
//声明
function sum1(a, b){
return 'a + b =' + (a + b)
}
//调用:声明后调用
console.log(sum1(10, 20))
console.log('-------------')
// * 2.匿名函数
// const ,let 没有声明提升的效果
// console.log(sum2(60, 70))
const sum2 = function (a, b) {
return 'a + b =' + (a + b)
}
console.log(sum2(40, 50))
console.log('-------------')
// * 3. 箭头函数
// 匿名函数的语法糖(简化)
// 语法: 删除function, (...)=>{...}
let sum3 = (a, b) => {
return 'a + b = ' + (a + b)
}
console.log(sum3(100, 200))
// 只有一条return ,可不写 {...}
sum3 = (a, b) => 'a + b = ' + (a + b)
console.log(sum3(200, 300))
// 只有一个参数, (...)也可不写
sum3 = username => 'Hello, ' + username
console.log(sum3('李四'))
// 没有参数, (...)必须写
sum3 = () => 'Hello, 王麻子'
// _ 也是一个合法变量标识符
// sum3 = _ => 'Hello, 王麻子'
console.log(sum3())
console.log('-------------')
// * 4. 立即执行函数 (IIFE)
// 一个语法,用 (...) 包住 就转为"表达式"
let res = (function (a, b) {
return 'a + b = ' + (a + b)
})(300, 400)
console.log(res)
// * *箭头函数与匿名函数的最大区别: 没有自己的this
// * * 1. 命名函数: 标识符
// * * 2. 匿名函数: 变量/常量
// * * 3. 箭头函数: 匿名函数语法糖
// * * 4. IIFE: 一次性,常用作模块或封装