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 confirm选择判断
Oct 18 Javascript
用Jquery实现滚动新闻
Feb 12 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
Jun 11 Javascript
再JavaScript的jQuery库中编写动画效果的指南
Aug 13 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
May 10 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
Aug 05 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
Mar 06 Javascript
vue图片加载与显示默认图片实例代码
Mar 16 Javascript
Vue三层嵌套路由的示例代码
May 05 Javascript
关于Layui Table隐藏列问题
Sep 16 Javascript
微信小程序中使用vant框架的具体步骤
Feb 18 Javascript
vue3引入highlight.js进行代码高亮的方法实例
Apr 08 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查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
2011/10/31 PHP
我的php学习笔记(毕业设计)
2012/02/21 PHP
php页面消耗内存过大的处理办法
2013/03/18 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
js验证表单第二部分
2006/11/25 Javascript
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
Js 中debug方式
2010/02/07 Javascript
javascript写的日历类(基于pj)
2010/12/28 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
javascript数组定义的几种方法
2017/10/06 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
详解python时间模块中的datetime模块
2016/01/13 Python
Python中list初始化方法示例
2016/09/18 Python
python装饰器简介---这一篇也许就够了(推荐)
2019/04/01 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
使用html5 canvas绘制圆环动效
2019/06/03 HTML / CSS
Oroton中国官网:澳洲知名奢侈配饰品牌
2017/03/26 全球购物
美国电子元器件分销商:Newark element14
2018/01/13 全球购物
值传递还是引用传递
2015/02/08 面试题
委托书怎样写
2014/08/30 职场文书
歼十出击观后感
2015/06/11 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS