首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么jshint不能将赋值识别为表达式?

为什么jshint不能将赋值识别为表达式?
EN

Stack Overflow用户
提问于 2011-11-13 06:53:52
回答 6查看 9K关注 0票数 19

我需要如何修改这些行才能让jshint满意?

赋值是一个表达式。为什么jshint不理解这一点呢?显然,解释器是这样做的。

代码语言:javascript
复制
Line 572: while(bookmark_element=bookmark_list[iterator++])

Expected a conditional expression and instead saw an assignment.


Line 582: while(bookmark_element=bookmark_list[iterator++])

Expected a conditional expression and instead saw an assignment.


Line 623: while(element_iterator=element_iterator.nextSibling)

Expected a conditional expression and instead saw an assignment.
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-11-13 06:59:26

如果您确实想要侦听JSHint,请通过以下方式将表达式转换为布尔值:

代码语言:javascript
复制
while (!!(bookmark_element=bookmark_list[iterator++]))

! means: Something that evaluates to true is converted to false,
         something that evaluates to false is converted to true.

因此,!!的意思是:将某些东西转换为条件表示。

票数 20
EN

Stack Overflow用户

发布于 2011-11-13 06:57:49

代码语言:javascript
复制
/*jshint boss:true */

使用options进行实验。

票数 19
EN

Stack Overflow用户

发布于 2011-11-13 06:57:49

我确信jshint很好地理解了这个表达式,只是大多数编写if (a = b)的人实际上是指if (a == b),所以这会生成一个警告。

因为你的代码是你想要的,所以你可以添加一个显式的测试:

代码语言:javascript
复制
while ((element_iterator = element_iterator.nextSibling) !== null) { ... }
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8108184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档