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宝典学习笔记
Feb 07 Javascript
js实现可拖动DIV的方法
Dec 17 Javascript
javascript实现的图片切割多块效果实例
May 07 Javascript
javascript+canvas实现刮刮卡抽奖效果
Jul 29 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
Nov 26 Javascript
JS实现旋转木马式图片轮播效果
Jan 18 Javascript
node+vue实现用户注册和头像上传的实例代码
Jul 20 Javascript
Vue中对比scoped css和css module的区别
May 17 Javascript
微信小程序scroll-view实现字幕滚动
Jul 14 Javascript
微信小程序实现时间预约功能
Nov 27 Javascript
JS sort方法基于数组对象属性值排序
Jul 10 Javascript
vue-cli4使用全局less文件中的变量配置操作
Oct 21 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
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
php 数组字符串搜索array_search技巧
2016/07/05 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
禁止JQuery中的load方法装载IE缓存中文件的方法
2009/09/11 Javascript
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
2010/07/24 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
js定时器实例分享
2016/12/20 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
jQuery zTree插件快速实现目录树
2019/08/16 jQuery
vue-router之实现导航切换过渡动画效果
2019/10/31 Javascript
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
[48:23]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第一局
2016/03/05 DOTA
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
Python远程桌面协议RDPY安装使用介绍
2015/04/15 Python
在Django的session中使用User对象的方法
2015/07/23 Python
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
Python实现自动上京东抢手机
2018/02/06 Python
python版本的仿windows计划任务工具
2018/04/30 Python
python 执行文件时额外参数获取的实例
2018/12/18 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
HTML5进度条特效
2014/12/18 HTML / CSS
个人素质的自我评价分享
2013/12/16 职场文书
辩论赛主持词
2014/03/18 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
高校自主招生校长推荐信
2015/03/23 职场文书
专职安全员岗位职责
2015/04/11 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
自考生自我评价
2019/06/21 职场文书
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android