JavaScript的兼容性与调试技巧


Posted in Javascript onNovember 22, 2016

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

以上就是本文的全部内容,希望对大家有所帮助,谢谢对三水点靠木的支持!

Javascript 相关文章推荐
23个Javascript弹出窗口特效整理
Feb 25 Javascript
Javascript 运动中Offset的bug解决方案
Dec 24 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
Aug 06 Javascript
JS+CSS实现闪烁字体效果代码
Apr 05 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
Aug 23 Javascript
深入理解Commonjs规范及Node模块实现
May 17 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
Jun 17 Javascript
Vue.js 单页面多路由区域操作的实例详解
Jul 17 Javascript
Angular 容器部署的方法
Apr 17 Javascript
小程序实现带年月选取效果的日历
Jun 27 Javascript
让axios发送表单请求形式的键值对post数据的实例
Aug 11 Javascript
小程序如何支持使用 async/await详解
Sep 12 Javascript
关于Iframe父页面与子页面之间的相互调用
Nov 22 #Javascript
JS中BOM相关知识点总结(必看篇)
Nov 22 #Javascript
老生常谈原生JS执行环境与作用域
Nov 22 #Javascript
JS中位置与大小的获取方法
Nov 22 #Javascript
javascript中Date对象的使用总结
Nov 21 #Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
Nov 21 #Javascript
使用Angular.js实现简单的购物车功能
Nov 21 #Javascript
You might like
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
2011/03/29 PHP
PHP实现ftp上传文件示例
2014/08/21 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
PHP+JavaScript实现无刷新上传图片
2017/02/21 PHP
用ASP将SQL搜索出来的内容导出为TXT的代码
2007/07/27 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
jquery 表单取值常用代码
2009/12/22 Javascript
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
JQuery 学习技巧总结
2010/05/21 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
jquery实现页面常用的返回顶部效果
2016/03/04 Javascript
js实现HashTable(哈希表)的实例分析
2016/11/21 Javascript
JS ES6多行字符串与连接字符串的表示方法
2017/04/26 Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
2017/04/26 Javascript
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
python搭建简易服务器分析与实现
2012/12/15 Python
python读取浮点数和读取文本文件示例
2014/05/06 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
win8下python3.4安装和环境配置图文教程
2018/07/31 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
python中tab键是什么意思
2020/06/18 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
C#怎么让一个窗口居中显示?
2015/10/20 面试题
销售行业个人求职自荐信
2013/09/25 职场文书
数控技术专科生自我评价
2014/01/08 职场文书
杭白菊导游词
2015/02/10 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
医院员工辞职信范文
2015/05/12 职场文书
python利用pandas分析学生期末成绩实例代码
2021/07/09 Python
redis数据一致性的实现示例
2022/03/18 Redis