美文网首页
JavaScript连续赋值运算之己见

JavaScript连续赋值运算之己见

作者: 环零弦 | 来源:发表于2017-12-27 12:49 被阅读0次

文章看自《写了10年Javascript未必全了解的连续赋值运算》,但是讲得不清楚,自己理解如下:

代码:

var a = {n:1};  
a.x = a = {n:2};  
console.log(a.x); // undefined
console.log(a); // {n:2}

解释:

连续赋值时,先将各个变量的字面量求为各自指针,比如步骤如下:

  1. 求得变量 a 所指之处地址,我们将它表示为 ptr1,求得变量 a.x 所指之处地址,我们将它表示为 ptr2
  2. 连续赋值时,其实是从右往左,先将 ptr2 指向 {n:2} ,再将 ptr1 同样地指向 {n:2}
  3. 此时变量 a 所指之处不存在 x 这个指针,所以 a.x 将会被回收,a 所指之处只有 {n:2}

另外:

function fun(){
  var a = b = 5;
}
fun();  
console.log(a); // undefined  
console.log(b); // 5
// fun函数内的b无var修饰,所以编译时,编译器将其标记为全局变量,所以全局域内可以访问到。

相关文章

  • JavaScript连续赋值运算之己见

    文章看自《写了10年Javascript未必全了解的连续赋值运算》,但是讲得不清楚,自己理解如下: 代码: 解释:...

  • Javascript运算符

    JavaScript 运算符 JavaScript 运算符用于赋值,比较值,执行算术运算等。 JavaScript...

  • JavaScript运算符_赋值运算符(七)

    目录: 1.什么是赋值运算符?2.赋值运算符都有哪些? 一、什么是赋值运算符? JavaScript中的赋值运算可...

  • 第三课 JavaScript运算符

    JavaScript算术运算符 +-*/%(取余)++(递增)--(递减)- 赋值运算符;���=+=-=*=/=...

  • JavaScrip 运算

    先来简了解一下 运算符 = 用于赋值。 运算符 + 用于加值。运算符 = 用于给 JavaScript 变量赋值。...

  • 8/23

    JavaScript运算符: 运算符 = 用于赋值 运算符 + 用于加值 算数运算符 + - * / % ++ -...

  • javaScript运算符

    javaScript算术运算符 javaScript赋值运算符 用于字符串的 + 运算符 + 运算符用于把文本值或...

  • JavaScript赋值运算符

    JavaScript 语言中的赋值运算可以分为简单和复合两种赋值运算,前者是将赋值运算符 = 右边表达式的值保存到...

  • JavaScript赋值运算符

    JavaScript 语言中的赋值运算可以分为简单和复合两种赋值运算,前者是将赋值运算符 = 右边表达式的值保存到...

  • 赋值运算符

    JavaScript中的赋值运算可以分为简单和复合两种赋值运算,前者是将赋值运算符(=)右边表达式的值保存到左边的...

网友评论

      本文标题:JavaScript连续赋值运算之己见

      本文链接:https://www.haomeiwen.com/subject/txqugxtx.html