Discuss / JavaScript / 不知道是不是我理解有误

不知道是不是我理解有误

Topic source

创建env需要的参数可以查看文档获知。我们用autoescape = opts.autoescape && true这样的代码给每个参数加上默认值,最后使用new nunjucks.FileSystemLoader('views')创建一个文件系统加载器,从views目录读取模板。

这一段中的加入默认值不应该是用||的短路效应吗?为什么这里用的是&&

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

opts.autoescape可能值有3种,以及默认true的时候undefined应该输出true:

  • true => true
  • false => false
  • undefined => true

你把每一种带进去看看是不是预期的默认true

懂了,谢谢廖老师

autoescape = opts.autoescape && true这句当opts.autoescape为undefined的时候, opts.autoescape && true的结果还是undefined,应该不对吧?

廖雪峰

#5 Created at ... [Delete] [Delete and Lock User]

默认值false的可以加 

opts.noCache || false

默认值true的用

opts.autoescape === undefined ? true : opts.autoescape

已修正


  • 1

Reply