实参,形参,传值,传址的考察

实参,形参,传值,传址的考察

let user = {
    name : "a"
}

function getName(user) {
    user.name = "b";
    user = {
        name: "c"
    }
    console.log("形参是:", user.name);
}

getName(user);
console.log("结果是: ", user.name);

结果是
在这里插入图片描述
因为

function getName(user) {
user.name = “b”;
// 这的 user 其实是形参被赋值了, 如果在方法里面创建了一个新的对象,
// 就会 在堆里面创建一个新的栈,而不是去改前面的东西, 所以打印出来的的结果是 b
user = {
name: “c”
}
console.log(“形参是:”, user.name);
}
在这里插入图片描述

函数的执行过程
在这里插入图片描述
这个是从新开页面到浏览器渲染的过程中在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

var 在不管判断体中的代码执不执行,都会进行变量提升
在这里插入图片描述

在这里插入图片描述

函数在判断体中,会函数提升, 但是是只声明,不会定义, 所以在开始打印的foo是一个undefined, 在判断体中, 会创建一个私有的作用域上下文,并同步给全局一份,然后就不会有联系了
只有函数在判断体中才会这个样子
在这里插入图片描述

可以去看这个视频 讲的特别的细 连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值