0
我正在閱讀Mozilla Developer Network's page on Javascript,並且被我看到的一條線弄糊塗了。這裏是有問題的說明及行:基本的Javascript,評估一個簡單的變量賦值/邏輯語句
的& &和||操作員使用短路邏輯,這意味着他們是否執行第二個操作數取決於第一個操作數。這是檢查空對象很有訪問他們的屬性之前:
var name = o && o.getName();
這裏我的困惑是,大概是片斷的目的是執行:
var name;
if (o){
name = o.getname();
}
但是,它看起來像這裏發生的事情是該名稱被分配了一個布爾值,並且該布爾值爲「存在並且其名稱不爲空」。換句話說,對我來說,它看起來像:
var name = false;
if (o && o.getname()){
name = true;
}
謝謝!
看一看[**邏輯運算符**](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators),在最高層: *「邏輯運算符通常與布爾(邏輯)值一起使用;當它們是時,它們返回一個布爾值,然而,&&和||運算符實際上會返回其中一個指定操作數的值,所以如果這些運算符與「* –
簡而言之,'&&'返回它最左邊的falsy操作數,或者最後一個如果所有這些都是truthy,並且'||' - 最左邊的真值操作數,或者如果所有這些都是虛假的,則是最後一個。 – raina77ow
你的問題到底是什麼?是的,這個片段做了一些事情,但對你來說,它應該做一些其他的事情。那麼,問題是什麼? *爲什麼?*因爲這是它的編譯方式...... –