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 相关文章推荐
终于解决了IE8不支持数组的indexOf方法
Apr 03 Javascript
JavaScript移除数组元素减少长度的方法
Sep 05 Javascript
jquery使用remove()方法删除指定class子元素
Mar 26 Javascript
Node.js 应用跑得更快 10 个技巧
Apr 03 Javascript
Node.js中路径处理模块path详解
Nov 14 Javascript
js仿QQ邮箱收件人选择与搜索功能
Feb 10 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
Aug 17 Javascript
浅谈React组件之性能优化
Mar 02 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
Apr 20 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
Jul 02 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
Oct 09 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
Sep 20 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
php5中date()得出的时间为什么不是当前时间的解决方法
2008/06/30 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
CI(CodeIgniter)框架实现图片上传的方法
2017/03/24 PHP
PHP常用字符串函数用法实例总结
2020/06/04 PHP
DLL+ ActiveX控件+WEB页面调用例子
2010/08/07 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
jQuery实现带有洗牌效果的动画分页实例
2015/08/31 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
Vue快速实现通用表单验证的方法
2020/02/24 Javascript
vue制作toast组件npm包示例代码
2020/10/29 Javascript
django模型中的字段和model名显示为中文小技巧分享
2014/11/18 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
django使用haystack调用Elasticsearch实现索引搜索
2019/07/24 Python
Django 实现admin后台显示图片缩略图的例子
2019/07/28 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
温泉秘密:Onsen Secret
2020/07/06 全球购物
社区包粽子活动方案
2014/01/21 职场文书
工厂会计员职责
2014/02/06 职场文书
采购求职信
2014/03/17 职场文书
竞选班干部演讲稿500字
2014/08/20 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫
使用CSS实现音波加载效果
2023/05/07 HTML / CSS