>>分享Web前端开发技术,并对孙卫琴的《精通Vue.js:Web前端开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 29517 个阅读者 刷新本主题
 * 贴子主题:  JavaScript 函数参数 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2020-01-30 16:43:28     消息  查看  搜索  好友  邮件  复制  引用

  

JavaScript  函数参数

     JavaScript 函数对参数的值没有进行任何的检查。      

函数显式参数(Parameters)与隐式参数(Arguments)

函数的显式参数:

functionName ( parameter1 ,  parameter2 ,  parameter3 )   {
     //  要执行的代码……  
}

函数显式参数在函数定义时列出。

函数隐式参数在函数调用时传递给函数真正的值。    

参数规则

     JavaScript 函数定义显式参数时没有指定数据类型。

    JavaScript 函数对隐式参数没有进行类型检测。

    JavaScript 函数对隐式参数的个数没有进行检测。    

默认参数

     ES5 中如果函数在调用时未提供隐式参数,参数会默认设置为:

undefined

     有时这是可以接受的,但是建议最好为参数设置一个默认值:      

范例(ES5)

function   myFunction ( x ,  y )   {
     if   ( y  ===  undefined )   {
           y  =  0 ;
     }  
}

或者,更简单的方式:    

范例(ES5)

function   myFunction ( x ,  y )   {
     y  =  y  ||  0 ;
}

                            
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小 如果y已经定义 , y || 返回 y, 因为 y 是 true, 否则返回 0, 因为 undefined 为 false。


     如果函数调用时设置了过多的参数,参数将无法被引用,因为无法找到对应的参数名。

只能使用 arguments 对象来调用。    

ES6 函数可以自带参数

     ES6 支持函数带有默认参数,就判断 undefined 和  || 的操作:    

范例(ES6)

function   myFunction ( x ,  y  =  10 )   {
     //  y is 10 if not passed or undefined  
     return   x  +  y ;
}

myFunction ( 0 ,  2 )   //  输出 2  
myFunction ( 5 ) ;  //  输出 15, y 参数的默认值

arguments 对象

     JavaScript 函数有个内置的对象 arguments 对象。

     argument 对象包含了函数调用的参数数组。

     通过这种方式你可以很方便的找到最大的一个参数的值:    

范例

  x  =  findMax ( 1 ,  123 ,  500 ,  115 ,  44 ,  88 ) ;

function   findMax ( )   {
     var   i ,  max  =  arguments [ 0 ] ;
    
     if ( arguments . length  <  2 )   return   max ;

     for   ( i  =  0 ;  i  <  arguments . length ;  i ++ )   {
         if   ( arguments [ i ]  >  max )   {
     max  =  arguments [ i ] ;
         }
     }
     return   max ;
}

     或者创建一个函数用来统计所有数值的和:    

范例

x  =  sumAll ( 1 ,  123 ,  500 ,  115 ,  44 ,  88 ) ;

function   sumAll ( )   {
     var   i ,  sum  =  0 ;
     for   ( i  =  0 ;  i  <  arguments . length ;  i ++ )   {
         sum  +=  arguments [ i ] ;
     }
     return   sum ;
}

通过值传递参数

     在函数中调用的参数是函数的隐式参数。

         JavaScript 隐式参数通过值来传递:函数仅仅只是获取值。

         如果函数修改参数的值,不会修改显式参数的初始值(在函数外定义)。

         隐式参数的改变在函数外是不可见的。    

通过对象传递参数

     在JavaScript中,可以引用对象的值。

         因此我们在函数内部修改对象的属性就会修改其初始的值。

         修改对象属性可作用于函数外部(全局变量)。

         修改对象属性在函数外是可见的。






程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-02-04 10:52:13 重新编辑]
  Java面向对象编程-->Java常用类(下)
  JavaWeb开发-->流程控制
  JSP与Hibernate开发-->Web运作原理(Ⅱ)
  Java网络编程-->JSP技术详解(Ⅰ)
  精通Spring-->
  Vue3开发-->Java对象持久化技术概述
  聊聊Nodejs中的模块化和事件循环
  基于vue-element-admin 的权限管理
  在Typescript脚本中使用axios
  Velocity.js动画库的使用
  css3中translate、transform和translation,以及动画animati...
  CSS的style样式的三种用法
  BootStrap, React, Vue的比较
  拯救React的hooks:react的问题和hooks的作用
  Vue+Vant中van-list请求数据(数据请求调用公用方法)
  jQuery 遍历DOM 树中的同胞元素
  CSS 听觉参考手册
  CSS处理透明/不透明图像
  HTML5 地理定位
  JavaScript 函数 的定义和使用
  一文读懂前端技术演进:盘点Web前端20年的技术变迁史
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。