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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

【转】javascript中的LHS与RHS

發布時間:2025/7/14 javascript 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】javascript中的LHS与RHS 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接:http://www.cnblogs.com/yangxiaoguai132/p/5064625.html

最近在學習javascript過程中,接觸了LHS與RHS的概念,剛開始的時候有點理解不清,現在做一些梳理,方便以后進行理解。

LHS與RHS:javascript引擎的兩種查找類型,含義是賦值操作的左側與右側。

LHS:對哪個賦值就對哪個進行LHS引用,可以理解為賦值操作的目標。

RHS:需要獲取哪個變量的值,就對哪個變量的值進行RHS引用,理解為賦值操作的源頭。

賦值操作有多種形式,對于以上的兩種對LHS與RHS的解釋,我剛剛接觸,還是很混亂。

我的理解就是,一般在左邊的需要被賦值,就是LHS引用,右邊需要尋找到他的值,就是RHS引用。

例如:

1 function foo(a){ 2 var b=a; 3 rerurn a+b; 4 } 5 var c=foo(2);

以上代碼中有3個LHS與4個RHS,分析如下:

第一,var c中的c需要被賦值,在賦值操作的左側,所以對c進行LHS引用

第二,變量c需要被賦值,他的值是foo(2),那么foo(2)的值是多少呢,需要查找foo(2)的值,在賦值操作的右側,所以對foo(2)進行RHS引用

第三,隱含賦值操作,將2傳遞給function foo(a){……}函數的參數a,a在賦值操作的左側,對a進行LHS引用

第四,var b=a;中,b需要被賦值,處在賦值操作的左側,所以b進行的LHS,b的值將從a來,那么右側的a的值從何而來呢?這就需要對賦值操作右側的a進行RHS。

第五,return a+b;中,需要找到a與b的值的來源,a與b都在賦值操作的右側,才能得到a+b的值,所以對a與b都是進行RHS引用。

為什么要區分LHS與RHS?

因為在變量還沒有聲明(在任何作用域中都無法找到該變量)情況下,這兩種查詢行為是不一樣的。

例如:

1 function foo(a){ 2 console.log(a+b); 3 b=a; 4 } 5 foo(2);

以上代碼對b進行RHS的時候無法找到該變量的值,則會拋出ReferenceError異常,如果是LHS找不到變量,非嚴格模式下,會在全局作用域中,創建一個具有該名稱的變量,嚴格模式下,會拋出與RHS類似的異常。

例如:

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Document</title><script type="text/javascript">function init(a){b=a+3;}init(2); alert(b);//5</script> </head> <body></body> </html>

以上代碼中,對b進行LHS沒有找到該變量,在全局作用域中創建了一個同名的變量b,在函數init外部可以訪問到b變量。

如果將代碼更改為如下:

1 <!DOCTYPE html>2 <html lang="en">3 <head>4 <meta charset="UTF-8">5 <title>Document</title>6 <script type="text/javascript">7 function init(a){8 var b=a+3;9 10 } 11 init(2); 12 alert(b); 13 </script> 14 </head> 15 <body> 16 17 </body> 18 </html>

在function中定義了一個局部變量b,全局作用域中定義,控制臺報錯如圖顯示,窗口中沒有任何輸出

將代碼改成如下:

1 <!DOCTYPE html>2 <html lang="en">3 <head>4 <meta charset="UTF-8">5 <title>Document</title>6 <script type="text/javascript">7 function init(a){8 var b=a+3;9 10 } 11 init(2); 12 alert(window.b);//undefined 13 </script> 14 </head> 15 <body> 16 17 </body> 18 </html>

將代碼改成如上所示,控制臺并沒有報錯, 因為window.b作為window的一個屬性訪問,所以會返回undefined,而b作為一個變量沒有定義的時候是會報錯的

轉載于:https://www.cnblogs.com/xuanbiyijue/p/7815567.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的【转】javascript中的LHS与RHS的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 操操操视频 | 国产酒店自拍 | 69精品视频 | 蜜桃在线一区二区三区 | 交专区videossex非洲 | 成人h动漫精品一区二区下载 | 国产精品夜夜夜爽阿娇 | 夜夜se| 亚洲成人一二区 | 国产69视频在线观看 | 中文人妻熟妇乱又伦精品 | 伊人网大香 | 国产午夜精品久久 | 蜜桃av色偷偷av老熟女 | 日韩高清在线 | 内射干少妇亚洲69xxx | 超碰在线免费看 | 日本黄色xxxx| 97精品在线观看 | 四虎在线网址 | 国产视频一区二区三区在线 | 91视| 精品亚洲一区二区三区四区五区高 | 黑鬼大战白妞高潮喷白浆 | 天天操精品 | 国产精品xxx视频 | 欧美黄色一级片视频 | 一本大道av | 亚洲国产成人自拍 | 亚洲第一视频在线播放 | 欧美成人一区在线观看 | 中文字幕狠狠 | 欧美黄色影院 | 久久久久久久久国产精品 | 亚洲精品一区二区三区区别 | 97香蕉超级碰碰久久免费软件 | 五月开心播播网 | 午夜激情视频网站 | 日本韩国在线 | 尤物毛片 | 超级砰砰砰97免费观看最新一期 | 免费a网站| 免费av网址大全 | 98堂 最新网名 | 精品女同一区二区 | 天天色天天干天天 | 51吃瓜网今日 | 国产在线一区不卡 | 露脸丨91丨九色露脸 | 国内精品视频在线 | 免费在线不卡视频 | 欧美激情一级精品国产 | 香港日本韩国三级网站 | 亚洲综合中文 | 国产美女无遮挡免费 | 亚洲系列中文字幕 | 一区二区三区免费看视频 | 日韩欧美精品一区二区三区 | 日欧美女人 | 色小姐综合 | 97久久精品视频 | 国产91对白在线播放 | 久久久久久av无码免费网站下载 | 性做久久久久久久久 | 久久亚洲精品视频 | 成人乱人乱一区二区三区一级视频 | 婷婷午夜| 疯狂撞击丝袜人妻 | 天天射天天干天天色 | 国产精品无码成人网站视频 | 欧美激情在线狂野欧美精品 | 97伊人久久 | 激情xxx | 欧美成网 | 99久久久国产精品无码网爆 | 色乱码一区二区三区 | 午夜一区 | 中文字幕在线观看视频www | 久热久| 久热网| 69精品一区二区三区 | 激情五月激情综合 | 日韩中文字幕在线看 | 国产伦精品一区二区三区视频免费 | 女人性做爰69片免费看 | 亚洲无人区码一码二码三码的含义 | 成人激情电影在线观看 | 国产男男gay体育生白袜 | 光棍影院一区二区 | 亚洲爱视频 | 一卡二卡三卡四卡在线 | 国模小丫大尺度啪啪人体 | 日本三级黄色录像 | 久久久精品国产免费爽爽爽 | 影音先锋亚洲一区 | 国产高清sp | 日本国产视频 | 精品视频一二三 | 好吊视频在线观看 |