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 相关文章推荐
用javascript作一个通用向导说明
Aug 30 Javascript
js动态添加删除,后台取数据(示例代码)
Nov 25 Javascript
用Jquery选择器计算table中的某一列某一行的合计
Aug 13 Javascript
JavaScript判断textarea值是否为空并给出相应提示
Sep 04 Javascript
JavaScript中获取鼠标位置相关属性总结
Oct 11 Javascript
jQuery post数据至ashx实例详解
Nov 18 Javascript
jQuery居中元素scrollleft计算方法示例
Jan 16 Javascript
JS简单实现滑动加载数据的方法示例
Oct 18 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
Oct 30 Javascript
JS实现随机抽取三人
Nov 06 Javascript
微信小程序实现滑动翻页效果(完整代码)
Dec 06 Javascript
Vue Element-ui表单校验规则实现
Jul 09 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 - Html Transfer Code
2006/10/09 PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
jquery UI 1.72 之datepicker
2009/12/29 Javascript
JQuery 选项卡效果(JS与HTML的分离)
2010/04/01 Javascript
jQuery 验证插件 Web前端设计模式(asp.net)
2010/10/17 Javascript
JavaScript基础知识之数据类型
2012/08/06 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
js友好的时间返回函数
2016/08/24 Javascript
使用Math.max,Math.min获取数组中的最值实例
2017/04/25 Javascript
SeaJS中use函数用法实例分析
2017/10/10 Javascript
webpack分离css单独打包的方法
2018/06/12 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
梳理一下vue中的生命周期
2020/12/30 Vue.js
[02:29]DOTA2英雄基础教程 陈
2013/12/17 DOTA
Python编程实现数学运算求一元二次方程的实根算法示例
2017/04/02 Python
python使用信号量动态更新配置文件的操作
2020/04/01 Python
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
全球才华横溢工匠的家居装饰、珠宝和礼物:NOVICA
2021/01/22 全球购物
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
Java基础面试题
2014/07/19 面试题
师范生自荐信
2013/10/27 职场文书
本科毕业生自我鉴定
2013/11/02 职场文书
厨师个人自我鉴定范文
2014/04/19 职场文书
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
银行求职信范文
2014/05/26 职场文书
小学母亲节活动总结
2015/02/10 职场文书
Django如何与Ajax交互
2021/04/29 Python
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server
企业版Windows 11有哪些新功能? Win11适用于企业的功能介绍
2021/11/21 数码科技
vue实现登陆页面开发实践
2022/05/30 Vue.js