zoukankan      html  css  js  c++  java
  • JavaScript的RHS引用和LHS引用

    JavaScript的RHS引用和LHS引用

    • RHS是我要找到名为某某的变量,我要知道它的值是什么。
    • LHS是我要找到名为某某的变量,将值赋值给它,我不需要知道这个变量之前的值是什么

    我们看着段代码

    var b = 2;
    console.log(b);
    

    给变量查找变量b并给其赋值,就是LHS引用;获取b的值就是RHS引用

    function foo(a){
        console.log(a);
    }
    foo(2);
    

    这段代码看起来很简单,但里面的引用却较为复杂。

    首先,"去找foo的值,并把它给我",于是找到了foo,它是个函数,去执行它,这里要注意,函数有参数a,这里会执行一个LHS引用,把2赋值给a,这经常被忽略掉,然后别忘了,console.log也要进行引用,对console对象进行RHS引用,并检查里面是否有一个叫作log的方法,然后就是对a进行RHS引用,获取a的值,接下来还有最后一步,就像foo(2)一样,log(a),将a传递进去,引擎实现这个log的方法,理论上也会进行一次LHS的引用。

    最后不管是LHS查询或RHS查询都会在当前的作用域找,找不到,再父级作用域找,直到全局作用域,如果还找不到那就会报错。

    一道小试题

    请问这段代码有几处RHS引用和LHS引用

    function foo(a){
        var b = a;
        return a + b;
    }
    var c = foo(2);
    

    好了,这两个知道还是没啥用处,它一种偏冷的知识,不过知道了,有种13格比较高的感觉。

  • 相关阅读:
    日报 18/06/21
    collection
    日报 18/06/20
    getTickCount()函数 VS GetTickCount()函数
    临时变量不能作为非const类型引用形参的实参
    关于Char类型数据做cout输出
    静态局部变量、静态全局变量、extern全局变量、自动变量 札记
    cvKMeans2函数用法概述
    操作系统 庞丽萍 第五章
    操作系统 庞丽萍 第四章
  • 原文地址:https://www.cnblogs.com/tourey-fatty/p/12111549.html
Copyright © 2011-2022 走看看