与-1或undefined比较,不pipe用==还是===

这里是一个代码示例:

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是一个自定义函数,在错误的情况下返回一个string或-1。

我试着==而不是===,但它只是做同样的。

我试图通过undefinedreplace获取返回-1,但我只是得到

 line= undefined TypeError: Cannot call method 'search' of undefined 

代替。

为什么不执行?

编辑:试过

 var pline do { pline=gets(smil); if (pline===-1){console.log("Abort");callback(-1);} console.log("line= "+pline); }while(pline.search("<video")===-1); 

避免重写另一个variables,得到相同的结果

这是一个双重的问题。

第一次 – 你在这之后重写variablesline 。 这就是为什么你越来越Uncaught TypeError: Object -1 has no method 'search'

将该行更改为parsed_line = gets(smil); //also never forget semicolons parsed_line = gets(smil); //also never forget semicolons

2nd – search不是String的函数,你需要indexOf()函数。

所以改一下while(line.search()) while(line.indexOf())

我为你演示了一个小提琴

尝试添加一个rest。

 do { line=gets(smil); if (line===-1){ console.log("Abort"); callback(-1); break; } console.log("line= "+line); }while(line.search("<video")===-1);