本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘
函数的参数
对于参数值,JavaScript不会进行类型检查,任何类型的值都可以被传递给参数。 对于函数参数,如果过少,没得到值的参数值为undefined,如果过多,多的会被忽略掉。
rush:js;">
//调用函数时传入的实际参数
function add(num1,num2) {
return num1 + num2;
}
//一切正常的调用方式
console.info(add(1,2)); //3
//不检查参数的类型,字串和数字可以混用
console.info(add("1",2)); //12
//多余参数被忽略
console.info(add(1,2,3)); //3
//少的参数被视为undefined
//1+undefined=NaN
console.info(add(1)); //NaN
检测参数是否缺失 判断是否为 undefined
rush:js;">
//检测参数是否缺失
function sayHello(name,message) {
if (typeof message === 'undefined') {
message = '你好!';
}
console.info(name + "," + message);
}
sayHello("贾君鹏","你妈喊你吃饭");
sayHello("贾君鹏"); //贾君鹏,你好!
保存参数的arguments对象
利用arguments对象,写出支持任意个参数的函数。arguments像是一个数组,但实际上不是数组,所以很多数组方法是不能用的。
rush:js;">
//保存参数的arguments对象
function sumNumbers() {
var result = 0;
for (var i = 0; i < arguments.length; i++) {
result += arguments[i];
}
return result;
}
console.info(sumNumbers(1,2)); //3
console.info(sumNumbers(1,3)); //6
函数对象的length属性
arguments.length 函数接收的实参个数 函数名.length 函数定义的形参
rush:js;">
//函数对象的length属性
function sayName(name){
console.info(name);
}
function sum(num1,num2){
return num1 + num2;
}
function sayHi(){
console.info("hi");
}
console.info(sayName.length); //1
console.info(sum.length); //2
console.info(sayHi.length); //0
作为参数的函数对象 函数是一个对象,可以作为另一个函数的参数
rush:js;">
//作为参数的函数对象
function callSomeFunction(func,argu) {
return func(argu);
}
function getGreeting(name) {
return "Hello," + name;
}
var result = callSomeFunction(getGreeting,"jxl");
console.info(result); //Hello,jxl
rush:js;">
var callTwice = function (otherFunc) {
otherFunc();
otherFunc();
};
callTwice(function () {
console.info("this is a function");
});
函数作为参数实例:
rush:js;">
以上所述就是本文的全部内容了,希望大家能够喜欢。
原文地址:https://www.jb51.cc/js/53393.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。