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读取本地excel文档数据的代码
Nov 11 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
Mar 21 Javascript
js中生成map对象的方法
Jan 09 Javascript
一个JavaScript函数把URL参数解析成Json对象
Sep 24 Javascript
js实现网页右上角滑出会自动消失大幅广告的方法
Feb 27 Javascript
Vue概念及常见命令介绍(1)
Dec 08 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
Jun 22 Javascript
React 组件转 Vue 组件的命令写法
Feb 28 Javascript
基于Vue实现图片在指定区域内移动的思路详解
Nov 11 Javascript
用原生 JS 实现 innerHTML 功能实例详解
Apr 03 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
Aug 17 Javascript
Vue开发中常见的套路和技巧总结
Nov 24 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输出控制功能在简繁体转换中的应用
2006/10/09 PHP
php class中public,private,protected的区别以及实例分析
2013/06/18 PHP
分享php邮件管理器源码
2016/01/06 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
用JS实现的一个include函数
2007/07/21 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
2017/03/13 Javascript
vue+vue-router转场动画的实例代码
2018/09/01 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
JavaScript函数的特性与应用实践深入详解
2018/12/30 Javascript
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
2019/09/24 Javascript
纯js+css实现在线时钟
2020/08/18 Javascript
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
python实现将汉字转换成汉语拼音的库
2015/05/05 Python
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
分析Python中设计模式之Decorator装饰器模式的要点
2016/03/02 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
详解Python中namedtuple的使用
2020/04/27 Python
用Python 执行cmd命令
2020/12/18 Python
个人贷款担保书
2014/04/01 职场文书
借款协议书
2014/09/16 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
收银员岗位职责范本
2015/04/07 职场文书
《失物招领》教学反思
2016/02/20 职场文书
深入理解java.lang.String类的不可变性
2021/06/27 Java/Android