关于引用类型的误解

直接上代码 不墨迹

  function  name(user){
      user="zero";
      alert(user);
  }
  name('零度')

这个的结果可能很多人都会猜错  自己去试一下吧!

说执行顺序 为下边的更复杂的一个代码做铺垫

1、执行函数的时候 把“零度” 赋值给了 user

2、 在执行函数的过程中  user 又被赋值“zero”

3、于是结果是zero

开始稍微更复杂一点的(就是混合多一点代码)

  function changeName(username){
                 username = '零度';
                alert(username);
            }
            var username = 'zero';
             changeName(username);
            console.log(username);

            console.log(window.username);

参差不齐 大家凑活看吧!

先说结果  零度  zero  zero

解析
 函数中的username 不是全局变量  是一个形参的赋值 形参众所周知 是一个局部变量  于是 打印出来的肯定就是全部变量的数值 (zero) 了   函数执行 那么就是"零度" 了  你可以把那个形参去掉  这样的话    函数中的那个username 才是全局变量

原文地址:https://www.cnblogs.com/ling-du/p/4724505.html