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

时间:2017-03-09 11:02:14

标签: javascript php operator-keyword ternary

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

在javascript中是否有另一种使用三元运算符的方法?

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

你需要从php返回一个假值。你的代码几乎是正确的。它只是错过了它周围的引号。

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

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