专注WEB开发 分享经验,沉淀知识

javascript函数参数设置默认值问题

 作者:chenxing  时间:2016-10-12 22:10  评论:

不同浏览器都有自己的js引擎,对待上面这个函数可能表现的还不一样,至少在firefox里执行这个函数是没问题的。不同版本的IE和chrome表现也不一样,较低版本执行如上的函数就会出现错误。我们不能保证用户使用什么的浏览器,所以我们要规避这种陷阱。

在介绍如何设置参数默认值前先判断以下代码是否正确

function Get(param,callback,type='json'){
    ...//代码块
}

这里我在定义函数的时候直接在参数里传递默认值,这样设置函数的默认值是否有问题呢?如果这个是php程序,这样设置很标准。如果是javascript,那就可能会出现问题。

不同浏览器都有自己的js引擎,对待上面这个函数可能表现的还不一样,至少在firefox里执行这个函数是没问题的。不同版本的IE和chrome表现也不一样,较低版本执行如上的函数就会出现错误。我们不能保证用户使用什么的浏览器,所以我们要规避这种陷阱。

那么如何规范的给函数参数加默认值

方式一:通过arguments对象

function Get(param,callback,type){
    var type = arguments[2]?argument[2]:'json';
}

方式二:参数多少使用jquery拓展方式

function Fun(param){
    var defaultParam = {};
    $.extend(param,defaultParam || {});
}

方式三:缺省赋值

function Fun(param){
    var p = param?param:'';
}

以上就是常见的三种方式的函数参数的默认值设置。

最后附上不同浏览器使用的js引擎作为文章拓展知识:

  • WebKit , Safari浏览器 -> SquirrelFish Extreme,
  • Firefox -> TraceMonkey引擎
  • Google Chrome -> V8引擎,(C++)
  • Opera -> Carakan
  • Mozilla -> SpiderMonkey(C语言)
  • Mozilla -> Rhino( Java)
  • Mozilla -> JaegerMonkey

除特别注明外,本站所有文章均为作者原创。 或分享自己的编程经验,或探讨工作中的问题,或聊以人生趣事。 转载请注明出处来自 https://www.qiusuoweb.com/12.html

发布评论

 提交评论
有人回复时邮件通知我

 评论(0)

站长头像
chenxing(PHP攻城狮)

运营天数

总访问量

文章数量

-

-

-

交流群:157451741

新浪微博:草莽兴

 近期文章

聊聊国产化

 2024-08-24 15:56  97

内网穿透工具frp配置详情

 2024-07-18 22:30  192

mac在终端复制出现乱码00~ *** 01~

 2024-07-16 20:38  43

php html生成图片

 2024-07-08 20:25  82

scp命令使用说明

 2024-07-06 12:14  113

如何在当前目录打开终端

 2024-07-04 14:54  84

 最新评论

 tradeOff: 08月30日 10:19
在某些领域国产化是一个迫不得已的事儿
来源: 聊聊国产化
 sue: 07月03日 10:24
可以
来源: 微信小程序如何获取单个input值
 流年: 07月02日 11:31
不错的尝试
来源: 博客系统如何用markdown编辑器发布文章
 诚心: 09月29日 23:01
学到了
来源: 如何一次性推送百万级别的消息
 Nick: 04月14日 12:26
网上的资料还是太老,都只是取一个元素,解决了一大难题
来源: redis set集合取出一组数据并删除
 skywalker: 11月03日 18:21
简洁明了
来源: mysql 获取某个日期的前一天或后一天