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 相关文章推荐
javascript json2 使用方法
Mar 16 Javascript
判断浏览器的javascript版本的代码
Sep 03 Javascript
IE 当eval遇上function的处理
Aug 09 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
Apr 23 Javascript
jquery实现图片上传之前预览的方法
Jul 11 Javascript
微信小程序 wx.request(OBJECT)发起请求详解
Oct 13 Javascript
JS封装的三级联动菜单(使用时只需要一行js代码)
Oct 24 Javascript
利用JQUERY实现多个AJAX请求等待的实例
Dec 14 jQuery
Taro集成Redux快速上手的方法示例
Jun 21 Javascript
JS数组splice操作实例分析
Oct 12 Javascript
vue实现修改图片后实时更新
Nov 14 Javascript
微信小程序实现录音Record功能
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
Smarty foreach控制循环次数的实现详解
2013/07/03 PHP
PHP实现一维数组转二维数组的方法
2015/02/25 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
2017/08/10 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
JavaScript中的分号插入机制详细介绍
2015/02/11 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
微信小程序-消息提示框实例
2016/11/24 Javascript
移动前端图片压缩上传的实例
2017/12/06 Javascript
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
Vue实现动态创建和删除数据的方法
2018/03/17 Javascript
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
2018/11/10 Javascript
理理Vue细节(推荐)
2019/04/16 Javascript
layui实现tab的添加拒绝重复的方法
2019/09/04 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
2020/04/03 Javascript
Vue实现图片轮播组件思路及实例解析
2020/05/11 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
Python进行数据科学工作的简单入门教程
2015/04/01 Python
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
Python矩阵常见运算操作实例总结
2017/09/29 Python
Python3 伪装浏览器的方法示例
2017/11/23 Python
Python实现字典的遍历与排序功能示例
2017/12/23 Python
python基础教程项目四之新闻聚合
2018/04/02 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
python和mysql交互操作实例详解【基于pymysql库】
2019/06/04 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
2019/06/17 Python
python 函数中的内置函数及用法详解
2019/07/02 Python
HTML5 新旧语法标记对我们有什么好处
2012/12/13 HTML / CSS
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
机械专业个人求职自荐信格式
2013/09/21 职场文书
房地产员工找工作的自我评价
2013/11/15 职场文书
大学生四年生活自我鉴定
2013/11/21 职场文书
SpringCloud之@FeignClient()注解的使用方式
2021/09/25 Java/Android