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 相关文章推荐
提高 DHTML 页面性能
Dec 25 Javascript
Javascript倒计时代码
Aug 12 Javascript
获取中文字符串的实际长度代码
Jun 05 Javascript
JS应用正则表达式转换大小写示例
Sep 18 Javascript
如何实现移动端浏览器不显示 pc 端的广告
Oct 15 Javascript
jQuery中的100个技巧汇总
Dec 15 Javascript
Vue组件开发初探
Feb 14 Javascript
微信小程序中form 表单提交和取值实例详解
Apr 20 Javascript
js获取html页面代码中图片地址的实现代码
Mar 05 Javascript
学习jQuery中的noConflict()用法
Sep 28 jQuery
webpack优化的深入理解
Dec 10 Javascript
使用axios请求时,发送formData请求的示例
Oct 29 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
第十四节 命名空间 [14]
2006/10/09 PHP
用cookies来跟踪识别用户
2006/10/09 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
2016/07/01 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
jQuery 位置插件
2008/12/25 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
2011/07/10 Javascript
基于jquery库的tab新形式使用
2012/11/16 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
ajax在兼容模式下失效的快速解决方法
2016/03/22 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
JavaScript实现异步图像上传功能
2018/07/12 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
python Celery定时任务的示例
2018/03/13 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
Python scrapy增量爬取实例及实现过程解析
2019/12/24 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
优秀毕业生推荐信
2013/11/02 职场文书
机电专业求职信
2014/06/14 职场文书
2014年招生工作总结
2014/11/26 职场文书
小学五年级班主任工作经验交流材料
2015/11/02 职场文书
移除Selenium中window.navigator.webdriver值
2022/06/10 Python