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对象弹出一个层
Mar 26 Javascript
jquery实现更改表格行顺序示例
Apr 30 Javascript
三种动态加载js的jquery实例代码另附去除js方法
Apr 30 Javascript
JQuery操作textarea,input,select,checkbox方法
Sep 02 Javascript
js实现商城星星评分的效果
Dec 29 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
Mar 08 Javascript
原生JS实现圆环拖拽效果
Apr 07 Javascript
jQuery实现QQ空间汉字转拼音功能示例
Jul 10 jQuery
vue实现文章内容过长点击阅读全文功能的实例
Dec 28 Javascript
vue+springboot图片上传和显示的示例代码
Feb 14 Javascript
javascript实现贪吃蛇经典游戏
Apr 10 Javascript
基于vue实现探探滑动组件功能
May 29 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自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
PHP设计模式之工厂模式与单例模式
2016/09/28 PHP
thinkPHP5.0框架应用请求生命周期分析
2017/03/25 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
laravel实现于语言包的完美切换方法
2019/09/29 PHP
jquery animate实现鼠标放上去显示离开隐藏效果
2013/07/21 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
AngularJS中isolate scope的用法分析
2016/11/22 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
Vue的属性、方法、生命周期实例代码详解
2019/09/17 Javascript
Element InputNumber计数器的使用方法
2020/07/27 Javascript
在Python中调用ggplot的三种方法
2015/04/08 Python
Python CSV模块使用实例
2015/04/09 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
2018/12/30 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
python读取与处理netcdf数据方式
2020/02/14 Python
超全Python图像处理讲解(多模块实现)
2020/04/13 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
pycharm软件实现设置自动保存操作
2020/06/08 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
全天然狗零食:Best Bully Sticks
2016/09/22 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
环境科学专业个人求职信
2013/09/26 职场文书
优秀共产党员先进事迹
2014/01/27 职场文书
学习十八届三中全会精神实施方案
2014/02/17 职场文书
考核工作实施方案
2014/03/30 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers
python playwright之元素定位示例详解
2022/07/23 Python