2012-02-13 67 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";