Javascript函数的参数

 本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘

函数的参数         

            对于参数值,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>

以上所述就是本文的全部内容了,希望大家能够喜欢。

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

简述Jquery与DOM对象 - 2015-07-28 14:07:48

在第一次学习jquery中,常常会不能分辨DOM对象和Jquery对象,下面我们就简诉一下它们之间的关系和区别 1.DOM对象(Document Object Model) 文档对象模型,每一份DOM都可表示为一棵树,例如下面是一个简单的网页代码: 表示为DOM为: 我们可以通过JS中的getelementsByTayName或getelementsByTayId来获取树中的节点,像这样获取到的元素就是DOM对象,DOM可以使用JS中方法,例如: 复制代码 代码如下: var domobj=documen
JavaScript的Date()方法返回今天的日期和时间,并且不需要任何对象被调用。 语法 Date() 下面是参数的详细信息: NA 返回值: 返回今天的日期和时间 例子: htmlheadtitleJavaScript Date Method/title/headbodyscript type="text/javascript" var dt = Date(); document.write("Date and Time : " + dt ); /script/body/html 这将产生以下结果:
主要介绍使用jQuery实现带有校验密码强度的注册页面,当然要想生成一个漂亮的带有密码强度检验的注册页面要有相关插件和类库配合,具体内容如下: 相关的插件和类库 complexify - 一个密码强度检验jQuery插件 justgage - 一个兼容性良好的仪表盘类库 主要功能 注册中包含一个密码强度检验组件,用户需要设置一定强度的密码才可以注册 密码强度使用仪表盘类库justgage来显示,不同的强度的密码将显示不同的颜色 密码强度符合要求后,显示注册按钮 代码说明 HTML:div id="page

jQuery增加自定义函数的方法 - 2015-07-28 14:07:54

本文实例讲述了jQuery增加自定义函数的方法。分享给大家供大家参考。具体如下: $.fn.myFunction = function() { return $(this).addClass('changed'); }//用法:$('.changePlease').myFunction(); 希望本文所述对大家的jquery程序设计有所帮助。
此方法返回比最大的整数小于或等于参数 语法 Math.floor( x ) ; 下面是参数的详细信息: x : 一个数字 返回值: 返回比最大的整数小于或等于一个数x 例子: htmlheadtitleJavaScript Math floor() Method/title/headbodyscript type="text/javascript"var value = Math.floor(10.3);document.write("First Test Value : " + value ); var
本文实例讲述了javascript单例模式的简单实现方法。分享给大家供大家参考。具体实现方法如下: function SingeInstance(){ if(!SingeInstance._instance) SingeInstance._instance=this; return SingeInstance._instance;}var obj1=new SingeInstance();var obj2=new SingeInstance();console.log(obj1===obj2); //tr

AngularJS的内置过滤器详解 - 2015-07-27 22:07:57

今天我们来了解一下AngularJS的内置过滤器 先来看看这些内置过滤器使用方法: 一个过滤器,不带参数的情况 {{expression | filter}} 一个过滤器,带参数的情况 {{expression | filter:arguments}} 一个过滤器,带多个参数的情况 {{expression | filter: arg1: arg2: ...}} 多个过滤器,不带参数的情况 {{expression | filter1 | filter2 | ...}} 下面我们分别使用以下Angular

jQuery菜单插件用法实例 - 2015-07-27 22:07:57

本文实例讲述了jQuery菜单插件用法。分享给大家供大家参考。具体如下: 这里要分享的是一个菜单插件,在http://plugins.jquery.com/keleyi/ 看到的,使用找个插件可以制作页面底部向上弹出的菜单,不一定在页底,还有多种其他方式。 jQuery菜单插件js文件: /*!* Keleyi(jQuery Menu)* version: 0.1.6* Copyright (c) 2013 KeLeyi*/(function ($) { $.fn.keleyi = function (o

移动端JQ插件hammer使用详解 - 2015-07-27 22:07:25

从pc端到移动端相信很多前端攻城师为移动端发愁,写原声的手机端事件是非常费力的, 而jq的click有300毫秒延迟,现在有了比较不错的jq插件hammer,Hammer.js是一个开源的,轻量级的javascript库,它可以在不需要依赖其他东西的情况下识别触摸,鼠标事件支持各种手机事件,比如缩放 ,qq左滑动删除, 放大, 旋转等。 下面用一个tab切换来介绍hammer。 用法: 1,首先引入jq2.0以上版本和jquery.hammer.js. 2,获取元素,和jq一样,在后面加上hammer就可
这是一个非常实用的投票实例,应用在双方观点对抗投票场景。用户可以选择支持代表自己观点的一方进行投票,本文以红蓝双方投票为例,通过前后台交互,直观展示红蓝双方投票数和所占比例,应用非常广泛。 本文是一篇综合知识应用类文章,需要您具备PHP、jQuery、MySQL以及html和css方面的基本知识。本文在《PHP+MySql+jQuery实现的“顶”和“踩”投票功能》一文基础上做了适当改进,共用了数据表,您可以先点击了解这篇文章。 HTML 我们需要在页面中展示红蓝双方的观点,以及对应的投票数和比例,以及用