How would you check for undefined property in ejs for node.js?
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<% ) %>';