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 相关文章推荐
Javascript----文件操作
Jan 18 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
Oct 29 Javascript
js中typeof的用法汇总
Dec 12 Javascript
jQuery中hasClass()方法用法实例
Jan 06 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
Mar 20 Javascript
使用Jquery实现每日签到功能
Apr 03 Javascript
js获取地址栏参数的两种方法
Jun 27 Javascript
vue上传图片组件编写代码
Jul 26 Javascript
Vue内部渲染视图的方法
Sep 02 Javascript
基于JavaScript 实现拖放功能
Sep 12 Javascript
JS实现字体背景跑马灯
Jan 06 Javascript
详解Vue的mixin策略
Nov 19 Vue.js
关于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生成月历代码
2007/06/14 PHP
event对象的方法 兼容多浏览器
2009/06/27 Javascript
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
JS、CSS加载中的小问题探讨
2013/11/26 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
RxJS的入门指引和初步应用
2019/06/15 Javascript
微信小程序Echarts图表组件使用方法详解
2019/06/25 Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
2019/08/26 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
在Vue中使用antv的示例代码
2020/06/29 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
浅谈python 四种数值类型(int,long,float,complex)
2016/06/08 Python
Python中super()函数简介及用法分享
2016/07/11 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
微信跳一跳游戏python脚本
2020/04/01 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
Python多版本开发环境管理工具介绍
2019/07/03 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
使用 css3 transform 属性来变换背景图的方法
2019/05/07 HTML / CSS
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
介绍一下Python中webbrowser的用法
2013/05/07 面试题
当文件系统受到破坏时,如何检查和修复系统?
2012/03/09 面试题
制冷与电控专业应届生求职信
2013/11/11 职场文书
高中生家长会演讲稿
2014/01/14 职场文书
自立自强的名人事例
2014/02/10 职场文书
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL