运行我正在通过JSLint开发的JavaScript文件时,我遇到了这个错误:
Problem at line 387 character 68: Bad type.
$iframe_contents.find('ul:last').append(OA_output['web' + x]);
我不确定“坏类型”是什么意思,也不能通过搜索找到更多关于它的信息。根据理论上这行代码正在进行一些JSLint不同意的隐式类型转换,我将部分['web' + x]
更改为['web']
,并修复了错误。这为我的理论提供了支持,因为x
是一个整数,并且解释器需要执行类型转换以将其附加到字符串web
。
这引出了我的问题 - 这确实是错误的“坏类型”指的是什么,如果是这样,是否有一些固有的错误或危险的是将一个整数附加到像这样的字符串?编写这行代码以避免此错误的正确方法是什么(理想情况下不要只是安抚JSLint)?
如果需要,可以在这里快速了解这行代码包含的内容:
$iframe_contents
是一个缓存的jQuery对象:$('iframe').contents()
。.find()
和.append()
分别是jQuery方法(http://api.jquery.com/find/和http://api.jquery.com/append/)。OA_output
是一个对象,OA_output['web' + x]
包含一个字符串。答案 0 :(得分:2)
确实如此。 JSLint将指出字符串和数字之间的类型不一致,即使JS解释器可以正常处理它。如果您将其更改为OA_output['web' + x.toString()]
,则不应该出现此问题。