JSLint错误“是什么;类型错误"意思是

What does the JSLint error "Bad type." mean?

本文关键字:是什么 错误 quot 意思是 类型 JSLint      更新时间:2023-09-26

在运行我通过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]包含一个字符串

事实就是这样。JSLint会指出字符串和数字之间的类型不一致,即使JS解释器可以很好地处理它。如果你把它改成OA_output['web' + x.toString()],你就不会有这个问题。