zoukankan      html  css  js  c++  java
  • 作用域中LHS查询和RHS查询

    LHS查询:赋值操作左侧的查询,LHS查询试图找到变量的容器本身,,从而对其赋值。

    RHS查询:赋值操作右侧的查询,可以理解为“取到某某的值”

    举例:

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

    RHS查询有:

    1. foo(..), 查询foo函数
    2. 函数内Console对象的查询
    3. 对a进行RHS查询

    LHS查询:

    1. 把2赋值给参数a时,对a进行LHS查询;
    • 区别

    如果RHS查询在所有嵌套的作用域中找不到所需的变量,引擎就会抛出ReferenceError异常;

    相比之下,非严格模式下,当执行LHS查询时,如果在顶层作用域也无法找到目标变量,全局作用域会创建一个具有该名称的变量,并将其返回给引擎;严格模式下,LHS查询,找不到目标变量时也会抛出ReferenceError异常。

    如果RHS查询找到了一个变量,但是对这个变量的值进行不合理的操作(如试着引用null类型的属性),引擎会抛出TypeError异常。

    • 作用域

    作用域是一套规则,用来管理引擎如何在当前作用
    域以及嵌套的子作用域中根据标识符名称进行变量查找。如果查找的目的是对
    变量进行赋值,那么就会使用 LHS 查询;如果目的是获取变量的值,就会使用 RHS 查询。

  • 相关阅读:
    Kernel parameter requirements ( Linux DB2)
    db2 backup export
    db2 活动日志激增的原因分析处理
    db2 应用的最常见状态(转)
    db2 reorg到底需要多少表空间(转)
    HDLM for AIX安装
    db lock
    db2 tablespaces table bufferpools reorgs
    AIX文件系统和存储部署(转)
    真正看网络代码
  • 原文地址:https://www.cnblogs.com/Jingge/p/10208972.html
Copyright © 2011-2022 走看看