首先见名知意,“L”和“R”的含义,它们分别代表左侧和右侧

一、LHS查询

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


二、RHS查询

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


LHS 和 RHS 的含义是 “赋值操作的左侧或右侧”并不一定意味着就是“= 赋值操作符的左侧或右侧”。说白了== 就是变量出现在复制操作的左边是进行LHS查询,出现在右边就是进行RHS查询==。


举例:

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

其中LHS查询有三处,RHS有四处

分别是

LHSc= ...a=2; 这一个LHS其实是一个隐式查询b=...
RHSfoo(2..= a;return a;return b;

两者的区别

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

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

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


由以下博客整理得:

https://www.cnblogs.com/inaruto/p/11262484.html

https://www.cnblogs.com/Jingge/p/10208972.html

JavaScript : 对LHS和RHS两个名词的理解相关推荐

  1. 【转】javascript中的LHS与RHS

    原文链接:http://www.cnblogs.com/yangxiaoguai132/p/5064625.html 最近在学习javascript过程中,接触了LHS与RHS的概念,刚开始的时候有点 ...

  2. JavaScript 的查询机制——LHS 与 RHS

    JavaScript 引擎在查找一个变量的时候,有两种查找机制:LHS 和 RHS. RHS 的查询是简单地查找到某个变量的值,而 LHS 则是试图找到变量的容器的本身. 一个简单的例子:当我们执行 ...

  3. JavaScript中的LHS和RHS查询

    文章是本人大三期间的学习笔记,一些论断取自书籍和网上博客,碍于当时的技术水平有一些写得不够好的地方,可以在评论处理智讨论~ 问题来源于<你不知道的JavaScript(上卷)>,文章部分论 ...

  4. 为什么区分LHS和RHS?

    因为在变量还没声明(在任何作用域中都无法找到该变量)情况下,这两种查询行为是不一样的. LHS与RHS是JavaScript引擎的两种查找类型. RHS:需要获取那个变量的值,就是对那个变量的值进行R ...

  5. 通俗易懂的LHS和RHS

    在一段代码执行之前,会经过编译阶段 . 在对程序的处理过程中,不可或缺的人物就是:引擎,编译器,作用域. JavaScript在预编译后执行代码时,引擎就会对其进行查询,查询分为: LHS:Left- ...

  6. LHS与RHS查询(已完结)

    LHS与RHS查询 什么是LHS与RHS查询 如果查找的目的是对变量进行赋值,那么就会使用LHS 查询:如果目的是获取变量的值,就会使用RHS 查询 考虑以下代码: console.log(a); 其 ...

  7. jquery、javascript实现(get、post两种方式)跨域解决方法

     jquery.javascript实现(get.post两种方式)跨域解决方法 一.实现get方式跨域请求数据 浏览器端 <script> $(document).ready(fun ...

  8. LHS和RHS的理解

    LHS:赋值操作的目标 RHS:赋值操作的源头 LHS:当变量出现在赋值操作的左侧时进行LHS查询      LHS查询试图找到变量容器本 身      如果查找的目的是对变量进行赋值,就会使用LHS ...

  9. C++中LHS和RHS指什么

    对于LHS和RHS,懂得都懂,不懂的一看就懂 LHS 赋值操作的左侧 Left Hand Side,一般指左值. RHS 赋值操作的右侧 Right Hand Side,一般指右值.

最新文章

  1. Tempdb数据库详细介绍
  2. 用Python实现深度学习框架
  3. pycharm conda 环境 切换 linux_【Python专题(一)】python环境搭建
  4. EasyUI中Dialog对话框的简单使用
  5. Spring Boot 消息队列 RocketMQ 入门
  6. 对状态代码使用JAX-RS异常
  7. 大型网站的数据库分割问题。
  8. 使用规则_英文标点符号的使用规则
  9. C#中的模块化软件开发
  10. ASA下邮件发送经常失败
  11. CMap的使用(转)
  12. Oracle RAC -常见CRS命令
  13. 如何查看华为android系统,如何查看华为手机系统更新的新增功能
  14. 全能----达芬奇之工艺交叉学
  15. Java面试精选(6):单例模式有几种写法?
  16. Linux Ubuntu16.04 Python3.5.2 Cuda10.1 TITAN XP安装fastai v1
  17. android限制app运行时间限制,android app 限制app使用时间
  18. 联想万全r520服务器安装系统,联想(lenovo)万全R520服务器图解
  19. 网站后台——用户上传图片剪切
  20. 苹果应用商店审核指南

热门文章

  1. Android源码:2、如何下载源码详解(二)(支持移动硬盘、mac)—亲测成功
  2. YUI 3 学习笔记:loader
  3. ce在科学计算机器是什么意思,计算器的ce键是什么功能
  4. 聚焦分布式资本:中国首家区块链基金如何布局区块链
  5. (附源码)springboot美食分享系统 毕业设计 612231
  6. ios 调试工具FLEX
  7. 快速打开cmd的方法(win7) window小合集
  8. 【实习之路】爱奇艺、追一科技日常实习生面试经历分享——爱奇艺篇
  9. SpringBoot开发微信公众号_回复文本信息功能
  10. 计算多边形(polygon)面积的算法原理和python实现