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>

    两次输出结果分别如下:

第一次:

JavaScript的兼容性与调试技巧

    第二次:

JavaScript的兼容性与调试技巧

一个变量,如果定义时不赋值,那么就是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

标签:js,兼容性,调试技巧
0
投稿

猜你喜欢

  • 关于JavaScript数组去重的一些理解汇总

    2024-05-02 16:17:56
  • 利用 python 对目录下的文件进行过滤删除

    2022-07-01 01:24:32
  • 学习Python爬虫前必掌握知识点

    2022-10-09 04:32:57
  • 在ASP中使用SQL语句之1:SELECT 语句

    2007-08-11 12:18:00
  • python利用蒙版抠图(使用PIL.Image和cv2)输出透明背景图

    2023-09-06 10:45:28
  • 深入分析MySQL数据类型 DECIMAL

    2024-01-26 04:07:59
  • 不知道这5种下划线的含义,你就不算真的会Python!

    2021-02-03 14:38:26
  • python基础之迭代器与生成器

    2022-02-20 07:07:54
  • python 列表套json字典根据相同的key筛选数据

    2022-06-01 08:52:02
  • ASP获取网页内容(解决乱码问题)

    2009-07-26 10:44:00
  • 总结SQL执行进展优化方法

    2024-01-13 22:38:44
  • 在Django框架中自定义模板过滤器的方法

    2021-02-11 20:14:49
  • 用pickle存储Python的原生对象方法

    2023-10-31 04:43:13
  • OpenCV实现图像滤波之双边滤波

    2022-05-14 07:35:30
  • position两三事

    2009-02-16 15:23:00
  • Vue3 组件库的环境配置搭建过程

    2024-04-30 10:19:58
  • Go并发编程sync.Cond的具体使用

    2024-05-13 10:41:00
  • 解析MySQL的information_schema数据库

    2024-01-15 15:05:59
  • python的Template使用指南

    2023-10-14 01:30:58
  • thinkphp5.1 框架钩子和行为用法实例分析

    2024-05-03 15:48:29
  • asp之家 网络编程 m.aspxhome.com