今天在使用prompt()这个系统内置函数时,发现以下这么个问题:
从这里我发现了一个致命的问题,这种操作将严重影响页面交互工作,那么这个问题是这么来的呢???我们先看下以下的源代码:
这是一个简单代码,主要是要来发现这个问题来源,那么这个代码的事先放一边,我们看下第二个if语句判断条件“a % 2 == 0”,乍一看好像没什么问题吧?其实这里犯了一个严重错误,说明这个错误前 我们来了解下 prompt()这个内置函数:
1.它是一个输入函数,可以获取用户输入的数值(暂时这么称呼这个值,不是很准确)
*2.它获取的值是一个字符串,我通过typeof()函数测试过,返回的值表明是个String
所以这里就可以解开真相了,其实我们刚刚那个判断条件是一个完全错误的写法,你对字符串的任何数值运算,本身就是个错误!!!所以prompt()运行后,默认都是else,
而每次prompt()窗口结束前都会去运行这个else中的语句(必定执行的语句),所以当你在窗口点击取消按钮后(窗口结束后运行alert语句),运行结果为以上结果。
总结:注意类型转换以免出现这种低级错误,逻辑过程必须正常,这边使用else本身也是一种错误。
正确写法参考: