繁体   English   中英

|| 运算符在 EJS 中未按预期工作

[英]|| operator not working as expected in EJS

我有这个 EJS 代码:

<link rel="stylesheet" type="text/css" href="/public/stylesheets/<%= css || 'default' %>.css" />

我认为,当css undefined ,这将评估为"/public/stylesheets/default.css" ,但它会引发错误

css is not defined

为什么? 这是 EJS 的怪癖,还是我误解了什么?

正如VLAZ所说:

它说css is not defined而不是undefined 两个不同的概念。 如果未定义,则永远不会声明和/或无法从当前和封闭范围访问它。 undefined意味着它被声明但没有赋值给它。

我能够使用customcommander的解决方案解决我的问题:

而不是

css || 'default'

抛出错误,使用

typeof css === 'undefined' ? 'default' : css

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM