Javascript函数的参数


Posted in Javascript onJuly 16, 2015

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

函数的参数         

            对于参数值,JavaScript不会进行类型检查,任何类型的值都可以被传递给参数。
            对于函数参数,如果过少,没得到值的参数值为undefined,如果过多,多的会被忽略掉。

//调用函数时传入的实际参数
  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

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

保存参数的arguments对象

 利用arguments对象,写出支持任意个参数的函数。arguments像是一个数组,但实际上不是数组,所以很多数组方法是不能用的。

//保存参数的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, 2, 3)); //6

函数对象的length属性  

               arguments.length       函数接收的实参个数
                函数名.length             函数定义的形参

//函数对象的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

作为参数的函数对象
函数是一个对象,可以作为另一个函数的参数

//作为参数的函数对象
 function callSomeFunction(func, argu) {
   return func(argu);
 }
 function getGreeting(name) {
   return "Hello, " + name;
 }
 var result = callSomeFunction(getGreeting, "jxl");
 console.info(result); //Hello,jxl

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

var callTwice = function (otherFunc) {
    otherFunc();
    otherFunc();
  };
  callTwice(function () {
    console.info("this is a function");
  });

函数作为参数实例:

<script>
  var button = document.getElementById('btnClick');
  var result = document.getElementById('result');
  var clickCount = 0;
  button.addEventListener('click', function () {
    clickCount++;
    result.setAttribute('value', clickCount+': Hello,world!');
  })
</script>

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
May 23 Javascript
javascript学习笔记(二) js一些基本概念
Jun 18 Javascript
jQuery实现公告文字左右滚动的实例代码
Oct 29 Javascript
JavaScript避免代码的重复执行经验技巧分享
Apr 17 Javascript
jQuery html()方法使用不了无法显示内容的问题
Aug 06 Javascript
Bootstrap中的Panel和Table全面解析
Jun 13 Javascript
Vue.js实现简单动态数据处理
Feb 13 Javascript
jQuery 利用ztree实现树形表格的实例代码
Sep 27 jQuery
jQuery Datatables表头不对齐的解决办法
Nov 27 jQuery
vue无限轮播插件代码实例
May 10 Javascript
微信小程序如何实现点击图片放大功能
Jan 21 Javascript
TypeScript魔法堂之枚举的超实用手册
Oct 29 Javascript
Javascript简单改变表单元素背景的方法
Jul 15 #Javascript
JavaScript基于ajax编辑信息用法实例
Jul 15 #Javascript
JavaScript实现对下拉列表值进行排序的方法
Jul 15 #Javascript
jQuery简单实现验证邮箱格式
Jul 15 #Javascript
JavaScript截断字符串的方法
Jul 15 #Javascript
Javascript显示和隐藏ul列表的方法
Jul 15 #Javascript
jQuery实现提示密码强度的代码
Jul 15 #Javascript
You might like
PHP中的加密功能
2006/10/09 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
JavaScript 学习技巧
2010/02/17 Javascript
js判断一个元素是否为另一个元素的子元素的代码
2012/03/21 Javascript
Jquery判断$(&quot;#id&quot;)获取的对象是否存在的方法
2013/09/25 Javascript
使用jquery实现放大镜效果
2014/09/02 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
2021/02/05 Javascript
使用PYTHON接收多播数据的代码
2012/03/01 Python
在Python中调用ggplot的三种方法
2015/04/08 Python
Python获取CPU、内存使用率以及网络使用状态代码
2018/02/08 Python
浅谈python中requests模块导入的问题
2018/05/18 Python
python+mysql实现教务管理系统
2019/02/20 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
最小二乘法及其python实现详解
2020/02/24 Python
html5-canvas中使用clip抠出一个区域的示例代码
2018/05/25 HTML / CSS
节约用水倡议书
2014/04/16 职场文书
暖通工程师岗位职责
2014/06/12 职场文书
2015年民主生活会发言材料
2014/12/15 职场文书
2014小学年度工作总结
2014/12/20 职场文书
2016年寒假生活小结
2015/10/10 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
2016年学校“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
Golang 编译成DLL文件的操作
2021/05/06 Golang
浅谈Python numpy创建空数组的问题
2021/05/25 Python
在Python中如何使用yield
2021/06/07 Python
上个世纪50年代的可穿戴技术:无线电帽子
2022/02/18 无线电