JavaScript函数可以以任意数目的参数来调用, 而不管函数定义中的参数名字有多少个。由于函数是宽松类型的,它就没有办法声明所期望的参数的类型,并且,向任何函数传递任意类型的参数都是合法的。
当调用一个函数的参数少于声明的参数个数的时候,其他的参数就有一个undefined的值。编写这样的函数常常是很有用的:某些参数为可选的并且在调用函数的时候可以忽略它们。要做到这一点,必须能够为忽略掉的参数分配一个合理的默认值。例如:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<script>
function copyPropertyNamesToArray(o,a){
a=a||[];
for(var prop in o){
a.push(prop);
return a;
</script>
</head>
<script>
var o={};
o.x=1;
o.y=2;
o.z=3;
p={"name":"Tom"};
var test=copyPropertyNamesToArray(o);
alert(test[0]);
alert(test[1]);
alert(test[2]);
alert(copyPropertyNamesToArray(p,test));
</script>
</body>
</html>在本例中,如果a已经定义了并且非null,它返回a,即便a是空的。否则它返回一个新的空数组。
注意在使用可选的参数来设计函数的时候,应该确保把可选的参数放在参数列表的末尾,以便它们可以被忽略。
JavaScript函数可以以任意数目的参数来调用, 而不管函数定义中的参数名字有多少个。由于函数是宽松类型的,它就没有办法声明所期望的参数的类型,并且,向任何函数传递任意类型的参数都是合法的。当调用一个函数的参数少于声明的参数个数的时候,其他的参数就有一个undefined的值。编写这样的函数常常是很有用的:某些参数为可选的并且在调用函数的时候可以忽略它们。要做到这一点,必须能够为忽略掉的参
$ bower install easy-params
在编写
Javascript
时,尤其是使用 NodeJS 时,我发现自己经常写这样的东西(取自 )
// example function where arguments 2 and 3 are optional
var example = function ( err , optionalA , optionalB , callback ) {
var args = [ ] ;
for ( var i = 0 ; i < arguments . length ; i ++ ) {
args . push ( arguments
js
函数
实现
参数
默认值和可
选
参数
的方法1. ES5方法(默认
参数
与可
选
参数
)2. ES6方法(默认
参数
)
1. ES5方法(默认
参数
与可
选
参数
)
函数
定义时,给
函数
传入一个“对象”类型的形参,具体实现时,为对象形参添加属性,每个属性相当于
函数
的一个
参数
。
不设置默认
参数
时,
参数
赋值如下:
var para=args.para;
设置默认
参数
时,
参数
赋值如下:
var para=args.para...
replace是一个可
选
参数
,如果设置了这个
参数
,值必须为true,因为默认值为false。默认值意味着模板会被当作子元素插入到调用此指令的元素内部:
<my-directive></my-directive>
.directive("myDirective",function(){
return {
全文来自:http://www.oschina.net/question/54100_15938
使用
javascript
类库
函数
时,经常会遇到一个
函数
,可以使用不同个数的
参数
的情况
比如:exp(var1) exp(var1, var2)
但是在实际编写
javascript
函数
时,
函数
不能同名,所以不可能是不同
参数
个数分开写;
参数
个数必须符合
函数
的设置,所以
函数
声明里有的就必须有,不可能调用时写少几个;
这个问题是困扰了很久了,一直不知道为什么?!
今天一早在看别人代码,无意中竟然看到了~
javascript
可
选
链接操作符(?.),检查属性链中是否存在某个成员,为预防访问不存在或者为空的变量时程序报错,可使程序更短更简洁。
例:有如下对象
let person = {
name: 'joy',
age: 18,
address: {
// country: 'CHINA',
// city: {
// city: 'beijing',
// area: 'chaoyang'
getInfo: function() {
return `${th
1 var color = 'red';
2 var style = {width: 200, height: 300};
3 var colorList = ['black', 'red'];
4 function change (color, style, colorList) {
5 color = 'black'
6 style ...
ECMAScript
函数
的
参数
与大多数其他语言中
函数
的
参数
有所不同。ECMAScript
函数
不介意传递进来多少个
参数
,也不在乎传进来
参数
是什么数据类型。
原因是ECMAScript中的
参数
在内部是用一个数组来表示的,所以可以使用arguments来访问这个
参数
数组。arguments是
函数
内部的一个特殊对象(另一个特殊对象...
在上面的代码中,
函数
`sayHello` 有一个
参数
`name`,它的默认值设置为 `'John'`。如果调用
函数
时未传递任何
参数
,则会使用默认值。否则,传递的值会覆盖默认值。
需要注意的是,可
选
参数
必须放在必需
参数
的后面,否则
JavaScript
将抛出错误。
例如,下面的代码是不正确的:
function sayHello(name = 'John', greeting) {
console.log(`${greeting}, ${name}!`);
sayHello(); // 抛出错误
因为
参数
`greeting` 没有默认值,所以在调用
函数
时必须传递一个值。但是,由于可
选
参数
`name` 放在了必需
参数
`greeting` 的前面,导致调用
函数
时没有传递任何
参数
,从而导致错误。
正确的写法应该是这样的:
function sayHello(greeting, name = 'John') {
console.log(`${greeting}, ${name}!`);
sayHello('Hi'); // 输出 "Hi, John!"
sayHello('Hi', 'Sarah'); // 输出 "Hi, Sarah!"
这样就可以正确使用可
选
参数
了。