开启辅助访问
帐号登录 |立即注册

JS变量赋值 (值 vs 引用)的知识点

 
理解 JS 如何给变量赋值可以帮助我们减少一些不必要的 bug。相反,如果,不理解这一点,可能很容易地编写被无意中更改值的代码。
JS 总是按照值来给变量赋值。 这一部分非常重要:当指定的值是 JavaScript 的五种基本类型之一(即 Boolean,null,undefined,String 和 Number)时,分配是实际值。 但是,当指定的值是 Array,Function或Object时,将内存中对象的引用地址赋值给变量。
在以下代码段中,使用 var1 对 var2 进行赋值。
由于var1是基本类型(String),因此 var2 的值等于 var1 字符中值,但 var1 和 var2 之间是独立的变量,不会影响彼此。 因此,重新赋值var2对var1没有影响。

let var1 = '小邓;
let var2 = var1;
var2 = '王钢蛋';
console.log(var1); // 小邓
console.log(var2); // 王钢蛋

接着,与对象赋值进行比较。

let var1 = { name: '小邓' }
let var2 = var1;
var2.name = '王钢蛋';
console.log(var1); // {name: "王钢蛋"}
console.log(var2); // {name: "王钢蛋"}

如果你期望它会像原始类型赋值那样,很可能会出问题!如果你创建了一个无意中会改变对象的函数,就会出现一些非预期的行为。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

友情链接
  • 艾Q网

    提供设计文章,教程和分享聚合信息与导航工具,最新音乐,动漫,游戏资讯的网站。