LHS和RHS查詢筆記

2021-10-06 07:50:21 字數 415 閱讀 7052

引擎在執行編譯器在編譯過程生成的**時,通過查詢賦值操作的左側和右側的變數,判斷是否宣告過。

lhs 是變數在賦值操作的左側,例如:

var a = 2
rhs 是變數在賦值操作右側,例如:

console.log(a);

或foo(2)

foo(2) 是指找到 foo() 的函式。

rhs 在作用域中找不到變數,引擎會丟擲referenceerror 錯誤。

rhs 在作用域中,找到變數,但是進行了不規範的操作,比如:不是函式卻執行了函式操作,比如在末尾加了個(),引用數值為 null 或 undefined 的屬性,則會返回 typeerror 錯誤

lhs 在作用域中找不到變數,在非嚴格模式下會建立乙個全域性變數。

作用域中LHS查詢和RHS查詢

lhs查詢 賦值操作左側的查詢,lhs查詢試圖找到變數的容器本身,從而對其賦值。rhs查詢 賦值操作右側的查詢,可以理解為 取到某某的值 舉例 function foo a foo 2 rhs查詢有 foo 查詢foo函式 函式內console物件的查詢 對a進行rhs查詢 lhs查詢 把2賦值給引...

js中RHS與LHS區別

為什麼區分rhs與lhs是一件重要的事情?因為在變數沒有宣告 在任何作用域都找不到該變數的情況下 這兩種查詢的行為是不一樣的.function foo a console.log a b return a b foo 2 第一次對b進行rhs查詢是找不到該變數的.也就是說這是乙個 未宣告 的變數.如...

rhs和rhsa檔案屬性的檔案刪除方法

最近在維護伺服器的時候,發現好多站點都被掛馬,於是用webshell來查詢木馬後門,shell是掃瞄除了所有的後門木馬,但是無法編輯和刪除,在資源管理器中也無法看到那些檔案,aux.asp,functlon.asp,footer.asp,defau1t.asp。但是這些檔案在editplus中卻可以...