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购物车实时结算特效实现思路
Sep 23 Javascript
javascript按位非运算符的使用方法
Nov 14 Javascript
js常用数组操作方法简明总结
Jun 20 Javascript
js实现div拖动动画运行轨迹效果代码分享
Aug 27 Javascript
javascript高级编程之函数表达式 递归和闭包函数
Nov 29 Javascript
Javascript 跨域知识详细介绍
Oct 30 Javascript
Angular ui.bootstrap.pagination分页
Jan 20 Javascript
基于vue+canvas的excel-like组件实例详解
Nov 28 Javascript
Vue 父子组件的数据传递、修改和更新方法
Mar 01 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
Nov 15 Javascript
JavaScript实现拖拽和缩放效果
Aug 24 Javascript
vue项目多环境配置(.env)的实现
Jul 21 Vue.js
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+JS实现搜索自动提示(实例)
2013/06/09 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
2013/12/24 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
encode脚本和normal脚本混用的问题与解决方法
2007/03/08 Javascript
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
javascript初学者常用技巧
2014/09/02 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
全屏js头像上传插件源码高清版
2016/03/29 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
AngularJS 应用身份认证的技巧总结
2016/11/07 Javascript
基于input动态模糊查询的实现方法
2017/12/12 Javascript
RequireJS用法简单示例
2018/08/20 Javascript
JavaScript设计模式之装饰者模式实例详解
2019/01/17 Javascript
简单学习Python time模块
2016/04/29 Python
Python科学计算之NumPy入门教程
2017/01/15 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
Python Numpy计算各类距离的方法
2019/07/05 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
pandas 如何分割字符的实现方法
2019/07/29 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
2020/11/17 HTML / CSS
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
Loreto Gallo英国:欧洲领先的在线药房
2021/01/21 全球购物
股权收购意向书
2014/04/01 职场文书
倡导文明标语
2014/06/16 职场文书
班级读书活动总结
2014/06/30 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
房屋所有权证明
2015/06/19 职场文书
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS
JavaScript高级程序设计之变量与作用域
2021/11/17 Javascript
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL
唤醒紫霞仙子,携手再游三界!大话手游X《大话西游》电影合作专属剧情任务
2022/04/03 其他游戏