2021-09-27

let和const的区别?

共同点:都是块级作用域

不同点:let声明的是变量,const声明的是一个常量,不能修改

        let a=10;a=20;  
		console.log(a) //20 可以修改

         const obj = {
			name:"张三",
			age:1
		}
        obj={name:"二虎"} ; // 对象不能修改
        obj.name="李四" ; // 对象的属性值可以修改
        console.log(obj.name) // 李四

箭头函数和普通函数的区别?

this指向不同

普通函数,谁调用这个函数,this就指向谁,箭头函数,在哪里定义函数,this就指向谁

const fun = () =>{
    return 100
}
const fun = () => 100

console.log(fun()) ;
()中定义参数,如果只有一个参数,可以不写括号
{} 中写函数体,如果函数体中只有返回值,可以不写return

let obj = {
    name:"小明",
    age:2,
    sayName(){
    // 普通函数
    setTimeout(function(){
        let self = this ;
       console.log('我是'+self .name)
   },500)
   // 箭头函数
   setTimeout(()=>{
       console.log('我是'+this.name)
   },500)
   
  }
}

obj.sayName()

闭包的理解?

 // 闭包: 函数嵌套函数,内部函数就叫做闭包

function outer(){
    let a=10;
function fun(){
   console.log(a) //10
 }
    return fun
}
let fun = outer()
fun()

 正常情况下,函数执行完成,内部变量会销毁
(销毁:释放内存空间)
特性:闭包,内部函数没有执行完成,外部函数变量不会被销毁
举个例子:
function sun(){
    let a = 10;
    console.log(a) //10 可以找到a
}
console.log(a)//找不到a,因为函数执行完内部变量会销毁,外部访问不到
sun()


闭包应用:
let a = 10,b = 20;
 function add(){
   return a+b
 }
 function sub(){
   return a-b
 }
let result1 = add()
let result2 = sub()
console.log(result)

// 这里把两个函数封装在一个立即执行函数里面,直接用函数调用不需要一个一个调用

let modo = (function(){
    let a = 10,b = 20;
    function add(){
        return a+b
    }
    function sub(){
        return a-b
    }
    return {
        add,
        sub
    }
})()
let result1 = modo.add() ; 
let result2 = modo.sub() ;
console.log(result1,result2)

// 写完,貌似看起来似乎有繁琐了点有没有

今日分享到此结束!...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值