JavaScript的兼容性与调试技巧

 更新时间:2016年11月22日 08:54:26   作者:逆心  
可能在大家使用JavaScript效果时,会碰到在各个浏览器中页面的显示效果不同,甚至报错,这就是代码的兼容性问题。本文就是主要介绍JavaScript的兼容性与调试技巧,希望对大家有所帮助

关于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;
 }

以上就是本文的全部内容,希望对大家有所帮助,谢谢对脚本之家的支持!

相关文章

  • javascript+HTML5 Canvas绘制转盘抽奖

    javascript+HTML5 Canvas绘制转盘抽奖

    这篇文章主要为大家详细介绍了javascrip+HTML5 Canvas绘制转盘抽奖的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • 前端接口报错302问题解决办法

    前端接口报错302问题解决办法

    这篇文章主要介绍了前端接口报错302的问题,并提供了多种解决方法和代码案例,帮助开发者更好地应对这一常见问题,需要的朋友可以参考下
    2025-01-01
  • JavaScript中匿名函数的递归调用

    JavaScript中匿名函数的递归调用

    本文主要介绍了JavaScript中匿名函数的递归调用。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 浅谈键盘上回车按钮的js触发事件

    浅谈键盘上回车按钮的js触发事件

    下面小编就为大家带来一篇浅谈键盘上回车按钮的js触发事件。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • javascript算法之数组反转

    javascript算法之数组反转

    这篇文章主要介绍了javascript算法之数组反转,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • js 用于检测类数组对象的函数方法

    js 用于检测类数组对象的函数方法

    下面小编就为大家带来一篇js 用于检测类数组对象的函数方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • JS 如何获取radio选中后的值及不选择取radio的值

    JS 如何获取radio选中后的值及不选择取radio的值

    获取radio选中后的值,这在提交页面经常会使用到的,在本文为大家介绍下不选择也能获取radio的值,具体实现如下,感兴趣的朋友可以参考下
    2013-10-10
  • js仿百度切换皮肤功能(html+css)

    js仿百度切换皮肤功能(html+css)

    这篇文章主要为大家详细介绍了JavaScript仿百度切换皮肤功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • JavaScript 变量作用域及闭包

    JavaScript 变量作用域及闭包

    作用域JavaScript 的变量作用域是按照函数划分的,为了快速的了解它的特性,我们通过实例来进行演示。
    2009-08-08
  • js判断手机号运营商的方法

    js判断手机号运营商的方法

    这篇文章主要介绍了js判断手机号运营商的方法,需要的朋友可以参考下
    2015-10-10

最新评论