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调试工具(下载)
Jan 09 Javascript
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
Mar 21 Javascript
js关闭模态窗口刷新父页面或跳转页面
Dec 13 Javascript
JS刷新框架外页面七种实现代码
Feb 18 Javascript
JS中for循序中延迟加载动态效果的具体实现
Aug 18 Javascript
JS中的数组的sort方法使用示例
Jan 22 Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
Jun 20 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
Mar 10 Javascript
Vue.js学习之过滤器详解
Jan 22 Javascript
基于Vue实现支持按周切换的日历
Sep 24 Javascript
Node使用Nodemailer发送邮件的方法实现
Feb 24 Javascript
工作中常用js功能汇总
Nov 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脚本数据库功能详解(中)
2006/10/09 PHP
使用php记录用户通过搜索引擎进网站的关键词
2014/02/13 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
smarty中英文多编码字符截取乱码问题解决方法
2014/10/28 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
js+JQuery返回顶部功能如何实现
2012/12/03 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
Js表格万条数据瞬间加载实现代码
2014/02/20 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
原生js仿浏览器滚动条效果
2017/03/02 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
关于laydate.js加载laydate.css路径错误问题解决
2017/12/27 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
2018/06/11 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
跟老齐学Python之大话题小函数(2)
2014/10/10 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
python利用有道翻译实现&quot;语言翻译器&quot;的功能实例
2017/11/14 Python
Python3中_(下划线)和__(双下划线)的用途和区别
2019/04/26 Python
Python 音频生成器的实现示例
2019/12/24 Python
Python爬虫爬取、解析数据操作示例
2020/03/27 Python
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
廉价连衣裙和婚纱礼服在线销售:Tbdress
2019/02/28 全球购物
快递员岗位职责
2014/09/12 职场文书
财产保全担保书
2015/01/20 职场文书
保研推荐信范文
2015/03/25 职场文书
java executor包参数处理功能 
2022/02/15 Java/Android