首页 > 网站 > WEB开发 > 正文

Javascript我学之三函数的参数

2024-04-27 14:06:59
字体:
来源:转载
供稿:网友

javascript我学之三函数的参数

本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘

函数的参数

对于参数值,Javascript不会进行类型检查,任何类型的值都可以被传递给参数。 对于函数参数,如果过少,没得到值的参数值为undefined,如果过多,多的会被忽略掉。
 1         //调用函数时传入的实际参数 2         function add(num1, num2) { 3             return num1 + num2; 4         } 5         //一切正常的调用方式 6         console.info(add(1, 2));  //3 7         //不检查参数的类型,字串和数字可以混用 8         console.info(add("1", 2)); //12 9         //多余参数被忽略10         console.info(add(1, 2, 3));  //311         //少的参数被视为undefined12         //1+undefined=NaN13         console.info(add(1));  //NaN

检测参数是否缺失

判断是否为 undefined

1         //检测参数是否缺失2         function sayHello(name, message) {3             if (typeof message === 'undefined') {4                 message = '你好!';5             }6             console.info(name + "," + message);7         }8         sayHello("贾君鹏", "你妈喊你吃饭"); 9         sayHello("贾君鹏");       //贾君鹏,你好!

保存参数的arguments对象

利用arguments对象,写出支持任意个参数的函数。arguments像是一个数组,但实际上不是数组,所以很多数组方法是不能用的。
 1         //保存参数的arguments对象 2         function sumNumbers() { 3             var result = 0; 4             for (var i = 0; i < arguments.length; i++) { 5                 result += arguments[i]; 6             } 7             return result; 8         } 9       console.info(sumNumbers(1, 2));  //310       console.info(sumNumbers(1, 2, 3));  //6
      

函数对象的length属性

arguments.length 函数接收的实参个数 函数名.length 函数定义的形参
 1         //函数对象的length属性 2         function sayName(name){ 3             console.info(name); 4         } 5         function sum(num1, num2){ 6             return num1 + num2; 7         } 8         function sayHi(){ 9             console.info("hi");10         }11         console.info(sayName.length); //112         console.info(sum.length); //213         console.info(sayHi.length); //0

作为参数的函数对象

函数是一个对象,可以作为另一个函数的参数
1         //作为参数的函数对象2         function callSomeFunction(func, argu) {3             return func(argu);4         }5         function getGreeting(name) {6             return "Hello, " + name;7         }8         var result = callSomeFunction(getGreeting, "jxl");9         console.info(result);  //Hello,jxl

使用命名/匿名函数作为函数参数

1         var callTwice = function (otherFunc) {2             otherFunc();3             otherFunc();4         };5         callTwice(function () {6             console.info("this is a function");7         });

函数作为参数实例:

1     <script>2         var button = document.getElementById('btnClick');3         var result = document.getElementById('result');4         var clickCount = 0;5         button.addEventListener('click', function () {6             clickCount++;7             result.setAttribute('value', clickCount+': Hello,world!');8         })9     </script>
运行:


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表