JavaScript : 对LHS和RHS两个名词的理解
首先见名知意,“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两个名词的理解相关推荐
- 【转】javascript中的LHS与RHS
原文链接:http://www.cnblogs.com/yangxiaoguai132/p/5064625.html 最近在学习javascript过程中,接触了LHS与RHS的概念,刚开始的时候有点 ...
- JavaScript 的查询机制——LHS 与 RHS
JavaScript 引擎在查找一个变量的时候,有两种查找机制:LHS 和 RHS. RHS 的查询是简单地查找到某个变量的值,而 LHS 则是试图找到变量的容器的本身. 一个简单的例子:当我们执行 ...
- JavaScript中的LHS和RHS查询
文章是本人大三期间的学习笔记,一些论断取自书籍和网上博客,碍于当时的技术水平有一些写得不够好的地方,可以在评论处理智讨论~ 问题来源于<你不知道的JavaScript(上卷)>,文章部分论 ...
- 为什么区分LHS和RHS?
因为在变量还没声明(在任何作用域中都无法找到该变量)情况下,这两种查询行为是不一样的. LHS与RHS是JavaScript引擎的两种查找类型. RHS:需要获取那个变量的值,就是对那个变量的值进行R ...
- 通俗易懂的LHS和RHS
在一段代码执行之前,会经过编译阶段 . 在对程序的处理过程中,不可或缺的人物就是:引擎,编译器,作用域. JavaScript在预编译后执行代码时,引擎就会对其进行查询,查询分为: LHS:Left- ...
- LHS与RHS查询(已完结)
LHS与RHS查询 什么是LHS与RHS查询 如果查找的目的是对变量进行赋值,那么就会使用LHS 查询:如果目的是获取变量的值,就会使用RHS 查询 考虑以下代码: console.log(a); 其 ...
- jquery、javascript实现(get、post两种方式)跨域解决方法
jquery.javascript实现(get.post两种方式)跨域解决方法 一.实现get方式跨域请求数据 浏览器端 <script> $(document).ready(fun ...
- LHS和RHS的理解
LHS:赋值操作的目标 RHS:赋值操作的源头 LHS:当变量出现在赋值操作的左侧时进行LHS查询 LHS查询试图找到变量容器本 身 如果查找的目的是对变量进行赋值,就会使用LHS ...
- C++中LHS和RHS指什么
对于LHS和RHS,懂得都懂,不懂的一看就懂 LHS 赋值操作的左侧 Left Hand Side,一般指左值. RHS 赋值操作的右侧 Right Hand Side,一般指右值.
最新文章
- Tempdb数据库详细介绍
- 用Python实现深度学习框架
- pycharm conda 环境 切换 linux_【Python专题(一)】python环境搭建
- EasyUI中Dialog对话框的简单使用
- Spring Boot 消息队列 RocketMQ 入门
- 对状态代码使用JAX-RS异常
- 大型网站的数据库分割问题。
- 使用规则_英文标点符号的使用规则
- C#中的模块化软件开发
- ASA下邮件发送经常失败
- CMap的使用(转)
- Oracle RAC -常见CRS命令
- 如何查看华为android系统,如何查看华为手机系统更新的新增功能
- 全能----达芬奇之工艺交叉学
- Java面试精选(6):单例模式有几种写法?
- Linux Ubuntu16.04 Python3.5.2 Cuda10.1 TITAN XP安装fastai v1
- android限制app运行时间限制,android app 限制app使用时间
- 联想万全r520服务器安装系统,联想(lenovo)万全R520服务器图解
- 网站后台——用户上传图片剪切
- 苹果应用商店审核指南