浅谈js中function的参数默认值
func(string1,url,flag,icon),然后在另一个asp中调用它func(a,b),那flag和icon的值是什么,怎么定义默认值?谢谢!
--默认值应该是 undefined
在函数内预设数可以用 arguments[i]
i就是你参数的位置 第一个为0
所以要设定 flag 的默认值 则可以这么写
function func(string1,url,flag,icon){ if(!arguments[2]) flag = "123"; if(!arguments[3]) icon = "456"; }
你试试 应该是这样
今天遇到一个问题,需要调用一个JS函数,想在函数中给它一个默认参数,以为跟其他语言一样。
<script> function test(id=0){ alert(id); } </script> <input type="button" value="test" onclick="test()">
运行结果报错,JS中不能这样传默认参数,上网查了一下,可以借助于arguments 实参数组,参考下例:
<script> function test(a){ var b=arguments[1]?arguments[1]:50 return a+':'+b } alert(test(5)) alert(test(5,9)) </script>
跟其他语言的一点小区别。。
--var b=arguments[1]?arguments[1]:50 还可以写做: var b= arguments[1] || 50;
我特别喜欢它这个特性。
--var b= arguments[1] || 50; 这个方法相当精简啊。
以上这篇浅谈js中function的参数默认值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
js设置function参数默认值(适合没有传参情况)
今天写一个div+css模拟js信息框的类库时遇到一个问题,我希望当我没有传递参数过去时自动使用"提示信息"作为窗口标题.我试着这样写 复制代码 代码如下: function MessageBox(title=""){ } 毫无疑问我运行失败了(要不然我也不会发这博文了) 最后经过一番百度,发现了这么个好东西 复制代码 代码如下: function test(a){ var b=arguments[0]?arguments[0]:50; return a+':'+b
-
js中对函数设置默认参数值的3种方法
在javascript中如何为函数设置默认参数值,下面提供几种方法供大家参考. 第一种方法: function example(a,b){ var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1 var b = arguments[1] ? arguments[1] : 2;//设置参数b的默认值为2 return a+b; } 注意以上函数也可写作如下: function example(){ var a = arguments[0] ? a
-
JS函数多个参数默认值指定方法分析
本文实例讲述了JS函数多个参数默认值指定方法.分享给大家供大家参考,具体如下: 函数有一个参数时,以往这样定义(参数为p1): function mfun(p1){ - } 当需要为p1设定一个默认值时 function mfun(p1){ if(p1===undefined) p1=5; //默认值设为5 - } 当函数需要2个参数时,以前习惯这样写 function mfun(p1,p2){-} 后来发现完全不需要这样写,js函数甚至不需要在括弧内预设参数名,可以用一下方式传入任意多个参数自
-
Javascript中设置默认参数值示例
第一种: function test(a,b){ var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1 var b = arguments[1] ? arguments[1] : 9;//设置参数b的默认值为9 return a+b; 其等价为 function test(){ var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1 var b = arguments[1] ? argume
-
浅谈js中function的参数默认值
func(string1,url,flag,icon),然后在另一个asp中调用它func(a,b),那flag和icon的值是什么,怎么定义默认值?谢谢! --默认值应该是 undefined 在函数内预设数可以用 arguments[i] i就是你参数的位置 第一个为0 所以要设定 flag 的默认值 则可以这么写 function func(string1,url,flag,icon){ if(!arguments[2]) flag = "123"; if(!arguments[
-
浅谈js中的三种继承方式及其优缺点
第一种,prototype的方式: //父类 function person(){ this.hair = 'black'; this.eye = 'black'; this.skin = 'yellow'; this.view = function(){ return this.hair + ',' + this.eye + ',' + this.skin; } } //子类 function man(){ this.feature = ['beard','strong']; } man.pr
-
浅谈js中的this问题
this this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上 this的最终指向的是那个调用它的对象(这里其实并不完全对,this的指向有时候会很微妙,得靠自己去慢慢体会) 只有方法在对象上,对象调用当前方法,指向当前对象 function fnThis(){ let user='js'; console.log(this.user)//undefined console.log(this)//global(window) } fnThis(); 这
-
浅谈js中字符和数组一些基本算法题
最近在刷 fcc的题,跟升级打怪一样,一关一关的过,还挺吸引我的.今天抽时间把 Basic Algorithm Scritping 这部分题做了,根据一些提示,还是比较简单的.有些题的处理方式 方法,我想值得借鉴.比如在项目中有时候要处理一个字符,如果想不到一些相关的方法,还挺费事的,所以,在此记录下来,如果以后遇到一些字符或者数组处理,可以来翻翻这篇文章,希望以此得到一些提示而不是去翻文档. 看到此博文的博友,有更好更简单的代码或者好的想法,请留言交流(我一直觉得只有学习别人的优秀代码才能进
-
浅谈JS中的三种字符串连接方式及其性能比较
工作中经常会碰到要把2个或多个字符串连接成一个字符串的问题,在JS中处理这类问题一般有三种方法,这里将它们一一列出顺便也对它们的性能做个具体的比较. 第一种方法 用连接符"+"把要连接的字符串连起来: str="a"; str+="b"; 毫无疑问,这种方法是最便捷快速的,如果只连接100个以下的字符串建议用这种方法最方便. 第二种方法 以数组作为中介用 join 连接字符串: var arr=new Array(); arr.push(a);
-
浅谈JS中逗号运算符的用法
注意: 一.由于目前正在功读JavaScript技术,所以这里拿JavaScript为例.你可以自己在PHP中试试. 二.JavaScript语法比较复杂,因此拿JavaScript做举例. 最近重新阅读JavaScript权威指南这本书,应该说很认真的阅读,于是便想把所学的东西多记录下来.后 面本人将逐步写上更多关于本书的文章. 本文的理论知识来自于JavaScript权威指南,我这里做一下整理,或者说叫笔记. 如果你的基础够好的话,完全理解不成问题,但是如果读得有些郁闷的话,可以加我的QQ:
-
浅谈js中test()函数在正则中的使用
test() 方法用于检测一个字符串是否匹配某个模式. 返回一个 Boolean 值,它指出在被查找的字符串中是否匹配给出的正则表达式. regexp.test(str) 参数 regexp 必选项.包含正则表达式模式或可用标志的正则表达式对象. str 必选项.要在其上测试查找的字符串. 说明 test 方法检查字符串是否与给出的正则表达式模式相匹配,如果是则返回 true,否则就返回 false. 每个正则表达式都有一个 lastIndex 属性,用于记录上一次匹配结束的位置. var
-
浅谈js中的引用和复制(传值和传址)
好像一般很少人讲到js中的引用和复制,不过弄清楚这个概念可以帮助理解很多东西 先讲一下很基础的东西,看看js中几种数据类型分别传的什么 引用:对象.数组.函数 复制:数字.布尔 字符串单独说明,因为它的特殊性,无法确定是传递引用还是复制数值(因为字符串的值是没法改变的,所以纠结这个问题也是没意义的)但是用于比较的时候显然是属于传值比较(稍后具体说比较的事) 下面讲一下在使用中的具体体现 最普通的使用就是赋值了 var a = 1; var b = a; //赋的是a的复制值 b ++; aler
-
浅谈JS中的bind方法与函数柯里化
绑定函数bind()最简单的用法是创建一个函数,使这个函数不论怎么调用都有同样的this值.不同于call和apply只是单纯地设置this的值后传参,它还会将所有传入bind()方法中的实参(第一个参数之后的参数)与this一起绑定. 关于这个特性看<JS权威指南>原文的例子: var sum = function(x,y) { return x + y }; var succ = sum.bind(null, 1); //让this指向null,其后的实参也会作为实参传入被绑定的函数sum
-
浅谈JS中var,let和const的区别
目录 区别1 区别2 区别3 区别4 区别5 区别6 区别7 区别1 let和var用来声明变量,const用来声明常量. 变量就是赋值后可以改变它的值,常量就是赋值后就不能改变它的值. 当声明为对象时,可以直接修改对象内的属性值 const age = 26; age = 36; // TypeError: 给常量赋值 // const声明的作用域也是块 const name = 'Matt'; if (true) { const name = 'Nicholas'; } console.lo
随机推荐
- Go语言中数组的基本用法演示
- AngularJS封装$http.post()实例详解
- ASP.NET中MVC从后台控制器传递数据到前台视图的方式
- javascript 禁止复制网页
- PHP实现仿Google分页效果的分页函数
- 安装dbus-python的简要教程
- 插件下载┊垃圾引用防御补丁(每小时自动换KEY,支持静态页面)
- VC++时钟函数
- js实现上传图片之上传前预览图片
- python实现用于测试网站访问速率的方法
- CSDN 博客的代码高亮问题自己修复
- ReactJs设置css样式的方法
- linux系统中的列出敏感用户的脚本代码
- Android Service的启动过程分析
- 深入c# GDI+简单绘图的具体操作步骤(三)
- Windows10中的IIS10安装php manager的方法
- c# Winform 程序自动更新实现方法
- LZW压缩算法 C#源码
- Listview的异步加载性能优化
- discuz加密解密函数使用方法和中文注释