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格比较高的感觉。

  • 相关阅读:
    ios开发学习视图切换(View Transition)效果源码分享系列教程
    ios开发学习cocos2d(cocos2d)效果源码分享系列教程
    C++类模板定义放在cpp里报错:LNK2019无法解析的外部符号
    std::string学习
    C++之ODB框架
    C++虚析构函数
    Windows编译GRPC
    Qt信号与槽原理
    GRPC环境配置
    C++传入指针并在内部new失败
  • 原文地址:https://www.cnblogs.com/tourey-fatty/p/12111549.html
Copyright © 2011-2022 走看看