你不知道的JavaScript学习小结(更新中)

前言

最近在看《你不知道的JavaScript》,有很多知识点枯燥并且难懂,所以每学习完一节不懂得新知识点就记录一下,加深记忆

1.1 理解作用域
简单记忆

书中1.2.3提到了之前没接触过的新知识点,LHS和RHS查询,书中的解释是

赋值操作的左侧或右侧

可理解为:

LHS:给变量赋值;RHS:获取变量的值。

简单的记忆就是,获取值获取的是等号右边的值,所以是RHS; 给变量赋值,一般是等号的左边,所以是LHS。(但是不能简单的用等号判断)

原文举例
console.log(a) ;
复制代码

我要打印a,就要获取a的值,所以是RHS查询,对a的引用为RHS引用

a = 2;
复制代码

这是给a赋值,将2赋值给a——LHS

function foo(a){
    console.log(a) // 2
}
foo(2)
复制代码

foo(..)可看做一个变量(实际是函数的调用),所以是去获取foo(..)的值——RHS

function foo(a)中是要给a赋值——LHS

log(a)中是要去获取a的值——RHS

原文测试题
function foo(a){
    var b = a;
    return a + b;
}
var c = foo(2)
复制代码

var c, c = .. :给c赋值——LHS

function foo(a),a = 2:给a赋值——LHS

var b, b = 2:给b赋值——LHS

foo(2):获取foo(..)的值——RHS

var b = a中对a的引用:获取a的值——RHS

a + b,对a:获取a的值;对b:获取b的值——RHS(两个)

作用

不成功的 RHS 引用会导致抛出 ReferenceError 异常。不成功的 LHS 引用会导致自动隐式 地创建一个全局变量(非严格模式下),该变量使用 LHS 引用的目标作为标识符,或者抛 出 ReferenceError 异常(严格模式下)。

转载于:https://juejin.im/post/5cfe06b0e51d45572c06001e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值