是否有更容易接受的方法
不要将JSLint的建议视为福音.这是一个胡思乱想的老人的教条意见; 其中一些是完全合理的,有些是相当可疑的.
while (variable= assignment)
虽然它有时可能是一个错误的比较器,但也是一种广泛理解的类C语言的习语.无论你使用这种方法还是其他方法都是品味问题,你应该亲自权衡,而不是盲目地接受克罗克福德的法令.
JavaScript 确实有一个do-while循环,所以如果你的测试始终在最后,那么这将是一个更合适的结构:
do { text= someBufferObject.read(); // do something } while (text);
更常见的是,你正在看的是一个中等测试循环.您可能喜欢也可能不喜欢break
Python使用的习语:
while (true) { text= someBufferObject.read(); if (!text) break; // do something }
您只需将其包装在另一组括号中以使JSLint满意.
while((text = someBufferObject.read())) { //do stuff with text }