我使用了koa-views中间件,在ejs文件中有如下代码 <% if (user) { %> <%= user.name %> <% } %> 若在js文件中加入如下代码则编译通过: ctx.state.user = {} 如果不使用该语句,则会爆出user未定义的错误(user is not defined)。 请问如何解决在不给ctx.state赋值的情况下,能编译通过。
回复 (4)
S
你的判断一下吧,例如: user ? user.name : 'unnamed'
H
引用 mofanjun@hezhongfeng 感谢你的回答,对于未声明的变量和声明却没有赋值的变量都属于undefined类型,但是if在使用前者时仍然会报错(chrome报Uncaught ReferenceE...
@mofanjun
我都说了,你别用if去判断
让你用typeof,例子也给你了
这个坑我也踩过,所以才知道的比较详细
H
你这个判断的语句就不行
typeof(user) !== 'undefined'
注意嵌套的变量要一层一层验证,例如先验证user,然后再验证user.name
M
引用 hezhongfeng你这个判断的语句就不行 注意嵌套的变量要一层一层验证,例如先验证user,然后再验证user.name
@hezhongfeng 感谢你的回答,对于未声明的变量和声明却没有赋值的变量都属于undefined类型,但是if在使用前者时仍然会报错(chrome报Uncaught ReferenceError); 谢谢。
参与回复
登录后即可参与回复。登录