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 相关文章推荐
jQuery 获取对象 定位子对象
May 31 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
May 12 Javascript
AngularJS表格详解及示例代码
Aug 17 Javascript
js实现增加数字显示的环形进度条效果
Feb 05 Javascript
详谈js中数组(array)和对象(object)的区别
Feb 27 Javascript
利用node.js爬取指定排名网站的JS引用库详解
Jul 25 Javascript
详解基于vue的移动web app页面缓存解决方案
Aug 03 Javascript
微信小程序 循环及嵌套循环的使用总结
Sep 26 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
Dec 29 Javascript
利用Webpack实现小程序多项目管理的方法
Feb 25 Javascript
利用es6 new.target来对模拟抽象类的方法
May 10 Javascript
js实现贪吃蛇小游戏(加墙)
Jul 31 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
NOT NULL 和NULL
2007/01/15 PHP
PHP文件缓存类示例分享
2015/01/30 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
PHP 对象继承原理与简单用法示例
2020/04/21 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
js可突破windows弹退效果代码
2008/08/09 Javascript
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
解析js原生方法创建表格效率测试
2013/07/08 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
IE 下Enter提交表单存在重复提交问题的解决方法
2014/05/04 Javascript
jQuery学习笔记之总体架构
2014/06/03 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
vue--vuex详解
2019/04/15 Javascript
javascript的this关键字详解
2019/05/20 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
Python本地与全局命名空间用法实例
2015/06/16 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
爬虫代理池Python3WebSpider源代码测试过程解析
2019/12/20 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
Python sqlalchemy时间戳及密码管理实现代码详解
2020/08/01 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
骆驼官方商城:CAMEL
2016/11/22 全球购物
Molly Bracken法国电子商店:法国女性时尚品牌
2019/07/24 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
出资证明书范本(标准版)
2014/09/24 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
SQL Server使用PIVOT与unPIVOT实现行列转换
2022/05/25 SQL Server