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 查询。

  • 相关阅读:
    【简】题解 AWSL090429 【市场】
    【简】题解 AWSL090429 【噪音】
    差分约束
    凸包模板
    杂模板
    后缀数组刷题
    Trie刷题
    字符串模板
    网络流建模专题
    组合数模板
  • 原文地址:https://www.cnblogs.com/Jingge/p/10208972.html
Copyright © 2011-2022 走看看