How would you check for undefined property in ejs for node.js?

最后都变了- 提交于 2019-11-28 21:09:15

Another way to test for a property is to reference it indirectly via the locals object. Using your example:

var tpl = '<% if(locals.foo){ %>foo defined<% }else{ %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz"} }));

I would use typeof, as in if (typeof foo == 'undefined'). I use the typeof operator with the string "undefined", whereas some people might do a direct comparison with the undefined global variable. I prefer this method because it is protected against some terrorist JS library developer changing the value of the global variable, leaving your code broken.

This could also be expressed as a ternary, which some view as "cleaner" due to the absence of curlies:

var tpl = '<% (typeof foo != "undefined" ? %>foo defined<% : %>foo undefined<% ) %>';

Simplest, and cleanest in my opinion:

<%= (!!locals.foo)?foo:'' %>

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!