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 相关文章推荐
js 鼠标点击事件及其它捕获
Jun 04 Javascript
js判断字符是否是汉字的两种方法小结
Jan 03 Javascript
JS实现IE状态栏文字缩放效果代码
Oct 24 Javascript
php利用curl获取远程图片实现方法
Oct 26 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
Dec 31 Javascript
原生js三级联动的简单实现代码
Jun 07 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
Aug 01 Javascript
AngularJS通过$http和服务器通信详解
Sep 21 Javascript
js在ie下打开对话窗口的方法小结
Oct 24 Javascript
jQuery EasyUI之验证框validatebox实例详解
Apr 10 jQuery
JavaScript实现抖音罗盘时钟
Oct 11 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
May 23 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缓存技术的使用说明
2011/08/06 PHP
php class类的用法详细总结
2013/10/17 PHP
Laravel框架中扩展函数、扩展自定义类的方法
2014/09/04 PHP
初识Laravel
2014/10/30 PHP
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
2015/05/11 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
layui table设置前台过滤转义等方法
2018/08/17 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
Python IDLE入门简介
2017/12/08 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
Python实现合并excel表格的方法分析
2019/04/13 Python
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
电气专业应届生求职信
2013/11/01 职场文书
师范毕业生自我鉴定
2014/01/15 职场文书
总经理秘书岗位职责
2014/03/17 职场文书
新春文艺演出主持词
2014/03/27 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
2015年学校总务工作总结
2015/07/20 职场文书