日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

JS中RHS引用和LHS引用的区别

發布時間:2023/12/14 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JS中RHS引用和LHS引用的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

平時做前端開發的時候可能接觸不到LHS和RHS這兩個名詞,但是它卻是js中最基礎的概念,表示兩種變量的查找方式,在js代碼中無處不在。我們來舉個例子說明一下LHS和RHS。

var a = 1;??我們把這個表達式根據等號拆成兩個部分,var a 和 = 1。這個里面var a進行的LHS查找,編譯器遇到var a時,會詢問作用域是否存在一個名為a的變量,如果有則忽略,如果沒有則讓作用域聲明一個名為a的變量(就是聲明一個容器,過一會用來存儲數字1),等式右邊進行的是RHS查找,也就是查找數字1本身的值(可以理解為數字1的物理地址),然后再將1賦給a。

我們再來看一個例子,console.log(a);這里的a進行的是LHS查找還是RHS查找呢?進行的是RHS查找,因為a沒有賦予任何值,這里只需要找到a本來的值,并傳遞給log函數。而上面的a則是LHS查找,需要為 = 1找到一個賦值目標。

我們再來看一個復雜一點的例子:

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

這個例子里哪些是LHS引用哪些是RHS引用?

最后一行test是一個RHS引用,表示查找到test的值并把它給我,而(..)表示test需要被執行,所以這里test必須是一個Function,否則會報test is not a function的錯誤,然后我們再看函數中的console.log(a);這里a進行的是RHS查找,表示找到a的值并傳遞給log(..),其實這里的console也是進行的RHS查找,表示查找到console這個對象并檢查對象中是否有一個log方法。

這里有一個容易被忽略的地方,就是傳參時隱式的 a = 2,這里的a進行的是LHS查找,表示在作用域中查找一個名為a的變量,并且將2賦給它。

總結

以上是生活随笔為你收集整理的JS中RHS引用和LHS引用的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。