日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

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

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

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

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

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

我們再來看一個復(fù)雜一點的例子:

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

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

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

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

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。