JavaScript的兼容性与调试技巧
作者:逆心 时间:2023-07-14 07:56:28
关于JavaSctipt的兼容性,最懒的办法就是用jQuery的工具函数。尽量不要用那些什么ECMAScript之类的函数,因为很多浏览器都会报找不到函数的错误。下面列出一些在开发过程中碰到过的javascript问题。
1、参数列表多个逗号。
$.ajax({})方法,非常熟悉了吧,但是在IE中有个小地方要注意,如果你在拼接参数列表的时候最后一个也加了逗号,那么毫无疑问,IE下全部JS失效。
调试时报如下错误:
缺少标识符、字符串或数字
data: {
S_Id: Subject_Id,
level: $("#addKey").attr("lang"),--如果写上这个逗号,IE会报错,火狐谷歌正常。
},
2、var str; 与 var str=""的区别
<script>
var Str1;
for (var i = 0; i < 3; i++)
{
Str1 += "xxx"
}
alert(Str1);
var Str2 = "";
for (var i = 0; i < 3; i++)
{
Str2 += "xxx"
}
alert(Str2);
</script>
两次输出结果分别如下:
第一次:
第二次:
一个变量,如果定义时不赋值,那么就是undefined。再加字符串就是undefined + "要加的字符串"。如果这样给HTML元素赋值。undefined也是会显示出来的,怎么注意你懂的。
3、IE缓存JS的调试
今天调试的时候,发现IE8的JS缓存,非常非常霸气。刷新,清空缓存都无效。搞得刷新到鼠标左键都快碎了,还是不刷新。
现在特别来说个技巧,就是引入JS的时候,在后面加个new Date()。这样就不用刷新得那么辛苦了。
<script type="text/javascript" src="/123.js?new Date()"></script>
4、JS判断函数/变量是否存在,存在则调用
javascript中null,undefined,0,"",false作为if的条件的时候,被认为是flase。
所以对于变量,如果我们定义了一个变量 var str = "";这样判断,依然返回false。
//是否存在指定函数 function isExitsFunction(funcName) { try { if (typeof(eval(funcName)) == "function") { return true; } } catch(e) {} return false; } //是否存在指定变量 function isExitsVariable(variableName) { try { if (typeof(variableName) == "undefined") { //alert("value is undefined"); return false; } else { //alert("value is true"); return true; } } catch(e) {} return false; }
来源:http://www.cnblogs.com/kissdodog/archive/2013/06/04/3117475.html
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
关于JavaScript数组去重的一些理解汇总
![](https://img.aspxhome.com/file/2023/7/132707_0s.png)
利用 python 对目录下的文件进行过滤删除
![](https://img.aspxhome.com/file/2023/3/131473_0s.png)
学习Python爬虫前必掌握知识点
![](https://img.aspxhome.com/file/2023/1/113061_0s.png)
在ASP中使用SQL语句之1:SELECT 语句
python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图
![](https://img.aspxhome.com/file/2023/5/108025_0s.jpg)
深入分析MySQL数据类型 DECIMAL
不知道这5种下划线的含义,你就不算真的会Python!
![](https://img.aspxhome.com/file/2023/6/79656_0s.jpg)
python基础之迭代器与生成器
python 列表套json字典根据相同的key筛选数据
ASP获取网页内容(解决乱码问题)
总结SQL执行进展优化方法
![](https://img.aspxhome.com/file/2023/8/89648_0s.png)
在Django框架中自定义模板过滤器的方法
用pickle存储Python的原生对象方法
OpenCV实现图像滤波之双边滤波
![](https://img.aspxhome.com/file/2023/6/82536_0s.jpg)
position两三事
Vue3 组件库的环境配置搭建过程
![](https://img.aspxhome.com/file/2023/6/130286_0s.png)