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 相关文章推荐
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
Aug 09 Javascript
js/jquery获取文本框输入焦点的方法
Mar 04 Javascript
jquery和js实现对div的隐藏和显示方法
Sep 26 Javascript
javascript的BOM
May 03 Javascript
JS简单实现tab切换效果的多窗口显示功能
Sep 07 Javascript
微信小程序页面间通信的5种方式
Mar 31 Javascript
JS中实现浅拷贝和深拷贝的代码详解
Jun 05 Javascript
vscode中eslint插件的配置(prettier配置无效)
Sep 10 Javascript
Vue数字输入框组件的使用方法
Oct 19 Javascript
原生JS实现天气预报
Jun 16 Javascript
Vue作用域插槽实现方法及作用详解
Jul 08 Javascript
浅谈JS的二进制家族
May 09 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的面试题集
2006/11/19 PHP
PHP面向对象概念
2011/11/06 PHP
PHP getDocNamespaces()函数讲解
2019/02/03 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
高性能JavaScript模板引擎实现原理详解
2015/02/05 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
Bootstrap Table列宽拖动的方法
2018/08/15 Javascript
详解Vue路由自动注入实践
2019/04/17 Javascript
jquery操作select常见方法大全【7种情况】
2019/05/28 jQuery
OpenLayers3实现对地图的基本操作
2020/09/28 Javascript
Vue使用Ref跨层级获取组件的步骤
2021/01/25 Vue.js
Python的Django框架使用入门指引
2015/04/15 Python
python实现的文件同步服务器实例
2015/06/02 Python
python采集百度百科的方法
2015/06/05 Python
用Pygal绘制直方图代码示例
2017/12/07 Python
实践Vim配置python开发环境
2018/07/02 Python
使用Python抓取豆瓣影评数据的方法
2018/10/17 Python
详解Python列表赋值复制深拷贝及5种浅拷贝
2019/05/15 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
Numpy中ndim、shape、dtype、astype的用法详解
2020/06/14 Python
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
社区服务活动总结
2014/05/07 职场文书
检讨书范文1000字
2015/01/28 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书
关于环保的广播稿
2015/12/17 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL
一文带你探究MySQL中的NULL
2021/11/11 MySQL
怎么禁用Windows 11快照布局? win11不使用快照布局的技巧
2021/11/21 数码科技