在javascript中,“X=(!X?8:X)”是什么意思?

在javascript中,“X=(!X?8:X)”是什么意思?,javascript,ternary-operator,Javascript,Ternary Operator,我最近在网上读了一段javascript代码,想把它转换成C。当我遇到这行代码时,我不知道它是做什么的:X=!X?8:X.请解释一下 它检查X是否为false,是否包含0、空字符串、null或未定义。如果是,则行将8指定给X,否则X将保留其原始值。如果是,则将X变量设置为8!如果X为假,那么X为真。否则,X保持相同的值 所以,如果X是一个空字符串,假布尔值或0数字,我可能会忘记一些值,但您知道,它将被设置为8,否则它将保留其原始值。这与: if(!X) { X = 8 } 看一看我更喜欢的是

我最近在网上读了一段javascript代码,想把它转换成C。当我遇到这行代码时,我不知道它是做什么的:X=!X?8:X.请解释一下

它检查X是否为false,是否包含0、空字符串、null或未定义。如果是,则行将8指定给X,否则X将保留其原始值。

如果是,则将X变量设置为8!如果X为假,那么X为真。否则,X保持相同的值

所以,如果X是一个空字符串,假布尔值或0数字,我可能会忘记一些值,但您知道,它将被设置为8,否则它将保留其原始值。这与:

if(!X) { X = 8 } 
看一看我更喜欢的是如果!x=8;在这种特殊情况下,三元数不能保存任何内容。