与-1或未定义进行比较不起作用,无论是使用==还是===
Comparison to -1 or undefined don t work, either with == or ===
这里有一个代码示例:
do
{
line=gets(smil);
if (line===-1){console.log("Abort");callback(-1);}
console.log("line= "+line);
}while(line.search("<video")===-1);
第一次输出很好,但突然间,我得到了
line= -1
TypeError: Object -1 has no method 'search'
gets是一个自定义函数,在出现错误时返回字符串或-1。
我试着用==而不是===,但它也一样。
我试图用undefined替换gets的return-1,但我只得到了
line= undefined
TypeError: Cannot call method 'search' of undefined
相反。
为什么if不执行?
编辑:尝试使用
var pline
do
{
pline=gets(smil);
if (pline===-1){console.log("Abort");callback(-1);}
console.log("line= "+pline);
}while(pline.search("<video")===-1);
为了避免覆盖另一个变量,得到了相同的结果
这个问题有两个问题。
1st-您正在覆盖do
后面的变量line
。这就是为什么你得到Uncaught TypeError: Object -1 has no method 'search'
将该行更改为parsed_line = gets(smil); //also never forget semicolons
2nd-search
不是String的函数,您需要indexOf()
函数。
因此,将while(line.search())
更改为while(line.indexOf())
。
我为你做了一把小提琴,在这里演示
尝试添加一个break。
do
{
line=gets(smil);
if (line===-1){
console.log("Abort");
callback(-1);
break;
}
console.log("line= "+line);
}while(line.search("<video")===-1);
相关文章:
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 我应该使用Ng提交还是点击表格
- 在javascript中确定输入数字是负数还是正数
- 我应该先学习Angularjs还是Laravel
- 我需要NG-IF/NG-SWITCH还是NG-SHOW&NG-HIDE
- 最好使用JavaScript还是XQuery
- 仅当窗口宽度>940像素,无论是通过页面加载还是调整大小
- 内容脚本是在同一个孤立的世界中运行,还是在不同的孤立世界中运行
- 如何检测我的音频流是:正在播放、暂停还是已完成
- 使用appendChild()动态添加的脚本是按顺序执行还是并行执行
- 是重新呈现整个模板更好,还是使用jquery修改一些值更好
- 我应该总是将模块调用到var中,还是在节点中立即执行
- 是我的第三方JavaScript返回html还是只是一个空对象
- 区分客户端运行的是OSX还是Windows
- 与-1或未定义进行比较不起作用,无论是使用==还是===
- Javascript:对象变量是空的,即使在我分配了它之后,无论是在对象内部还是外部
- 如何在选择标签上触发一些代码,无论是在更改上还是在键上,但不是在选择失去焦点时
- Ajax POST永远不会被触发,无论是成功还是错误
- 我怎么能通过jsContext从oc代码调用js函数(无论是全局函数还是js对象方法)