2012-02-13 44 views
0

有人能告訴我什麼是?是指在下面的js?我沒有線包裹的JS代碼,因爲我不希望在不經意間改變的意思......請求幫助閱讀一行JS

errMess = t.origStatus != undefined && t.status != t.origStatus && t.statuseffective == null ? errMess + t.systemname + ": Status effective date invalid.\n" : errMess; 

我看這是:
errMess =
t.original狀態不等於不定,
t.status不等於原始狀態AND
statuseffective等於null < - 不知道這是什麼意思

+0

解釋是C#,但意思是一樣的 http://msdn.microsoft.com/en-us/library/ty67wk28.aspx – 2012-02-13 17:35:35

回答

3

有問題的建設是一個ternary operator

的代碼也可以寫成:

if (t.origStatus != undefined 
    && t.status != t.origStatus 
    && t.statuseffective == null) { 
    errMess = errMess + t.systemname + ": Status effective date invalid.\n"; 
} else { 
    errMess = errMess; 
} 

所以,相當於:

if (A) { 
    X = B; 
} else { 
    X = C; 
} 

其他注意事項:

  • t.origStatus != undefined相當於t.origStatus != null,因爲在平等比較,null等於undefined。如果要比較的nullundefined是真正重要的,使用身份操盤手:t.origStatus === undefined
+0

你不需要別人 – dynamic 2012-02-13 17:35:38

+0

@約會拜訪我不需要它,但這是'errMess = ..'的字面翻譯版本? ..:errMess;'。忽略它會使答案不正確。 – 2012-02-13 17:36:37

+0

@ rob-w感謝這正是我需要的......但不知道該怎麼去問。 :) – HPWD 2012-02-13 17:36:51

1

這是一個if-從句的簡寫版本。欲瞭解更多信息,請看MDN conditional operator。 在全長你的代碼應該是這樣的:

if (t.origStatus != undefined && t.status != t.origStatus && t.statuseffective == null) { 
    errMess = errMess + t.systemname + ": Status effective date invalid.\n"; 
} else { 
    errMess = errMess; 
} 
0
if (t.origStatus != undefined && t.status != t.origStatus && t.statuseffective == null) 
     errMess = errMess + t.systemname + ": Status effective date invalid.\n";