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 CSS操作方法集合
Oct 31 Javascript
Js中setTimeout()和setInterval() 何时被调用执行的用法
Apr 12 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
Sep 21 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
Nov 26 Javascript
8个超实用的jQuery功能代码分享
Jan 08 Javascript
原生javascript实现图片弹窗交互效果
Jan 12 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
Sep 05 Javascript
jquery实现点击页面回到顶部
Nov 23 Javascript
JS经典正则表达式笔试题汇总
Dec 15 Javascript
react-router4 嵌套路由的使用方法
Jul 24 Javascript
JQuery animate动画应用示例
May 14 jQuery
类和原型的设计模式之复制与委托差异
Jul 07 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魔术方法使用方法汇总
2016/02/14 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
jQuery中:enabled选择器用法实例
2015/01/04 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
2015/09/01 Javascript
跟我学习javascript的严格模式
2015/11/16 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
element-ui 中的table的列隐藏问题解决
2018/08/24 Javascript
小程序点赞收藏功能的实现代码示例
2018/09/07 Javascript
微信小程序常用简易小函数总结
2019/02/01 Javascript
ElementUI中el-tree节点的操作的实现
2020/02/27 Javascript
vue中destroyed方法的使用说明
2020/07/21 Javascript
Element MessageBox弹框的具体使用
2020/07/27 Javascript
python根据出生日期获得年龄的方法
2015/03/31 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
Python制作exe文件简单流程
2019/01/24 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
Pandas库之DataFrame使用的学习笔记
2019/06/21 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
Django微信小程序后台开发教程的实现
2020/06/03 Python
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
幼儿教师思想汇报
2014/01/10 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL
详解Vue router路由
2021/11/20 Vue.js
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android