当变量为空时 javascript 中的三元运算符

ternary operator in javascript when variable is empty

我在 php $foo = get_field('foo') ?: null; 中使用了三元运算符,但我正在寻找 javascript 中的等效项。到目前为止,我已经尝试了 var foo = <?php echo $foo; ?> || null;。但是由于 <?php echo $foo; ?> 在这种情况下是 null/empty 控制台给我错误 Uncaught SyntaxError: Unexpected token || 因为变量是 var foo = || null;

在javascript中还有其他使用三元运算符的方法吗?

您需要 return 来自 php 的虚假值。您的代码几乎是正确的。它只是缺少引号。

var foo = '<?php echo $foo; ?>' || null;
console.log('foo', foo);   // null

这是因为当 $foo 为空时,它将是 var foo = '' || null; 由于 '' 在 Javascript 中是假的,它将 return 为空。

你的问题与三元运算符无关,而是PHP输出到javascript。最安全的方法是:

var foo = <?php echo json_encode($foo); ?> || null ;

json_encode() 函数确保变量以 JS 理解的形式回显。