• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

黄文超

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

JavaScript的变量赋值问题

JavaScript的变量赋值问题

1、基本类型赋值

var a = 1
    function fun(val) {
        val = 3
    }
fun(a)
console.log(a) // 1

过程如下:

解释:
	function中只是对val值进行了改变,并没有对a进行改变,全程只是a的值赋给了val

2、对象类型内部值的改变

var a = {name:'abc'}
    function fun(obj) {
        obj.name = 'hc'
    }
fun(a)
console.log(a.name) // hc

解释:
	1、obj接收的是a的地址值,所以指向的是a
	2、通过地址找到name,所以可以改变其name值

3、对象地址改变

var a = {name:'abc'}
function fun(obj) {
    obj = {name:'hc'}
}
fun(a)
console.log(a) // 输出{name:'abc'}不发生改变

解释:
	1、首先obj指向了a的地址
	2、但是在第二步时,obj又指向了一个新的地址空间,并没有对a进行修改

posted on 2021-10-21 08:54  黄文超  阅读(83)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3