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中for in的用法示例解析
Dec 25 Javascript
document.addEventListener使用介绍
Mar 07 Javascript
js实现屏幕自适应局部代码分享
Jan 30 Javascript
jQuery代码实现发展历程时间轴特效
Jul 30 Javascript
jQuery中$(function() {});问题详解
Aug 10 Javascript
日常收集整理的JavaScript常用函数方法
Dec 10 Javascript
AngularJS入门心得之directive和controller通信过程
Jan 25 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
Aug 20 Javascript
SVG动画vivus.js库使用小结(实例代码)
Sep 14 Javascript
vue用递归组件写树形控件的实例代码
Jul 19 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
Aug 07 Javascript
layui-table表复选框勾选的所有行数据获取的例子
Sep 13 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读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
2012/07/31 PHP
PHP大文件分片上传的实现方法
2018/10/28 PHP
贴一个在Mozilla中常用的Javascript代码
2007/01/09 Javascript
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
window.open不被拦截的实现代码
2012/08/22 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
javascript的创建多行字符串的7种方法
2014/04/29 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
微信小程序class封装http代码实例
2019/08/24 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
Python操作MySQL数据库的方法
2018/06/20 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
python plotly画柱状图代码实例
2019/12/13 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
CSS3实现网站商品展示效果图
2020/01/18 HTML / CSS
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
Linux的文件类型
2016/07/05 面试题
文秘专业毕业生就业推荐信
2013/11/08 职场文书
社区健康教育实施方案
2014/03/18 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
机器人瓦力观后感
2015/06/12 职场文书
男人帮观后感
2015/06/18 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书
pytorch Dropout过拟合的操作
2021/05/27 Python
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS
MySQL 数据 data 基本操作
2022/05/04 MySQL