>>分享Web前端开发技术,并对孙卫琴的《精通Vue.js:Web前端开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20833 个阅读者 刷新本主题
 * 贴子主题:  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面向对象编程-->多线程(下)
  JavaWeb开发-->JSP中使用JavaBean(Ⅰ)
  JSP与Hibernate开发-->立即检索和延迟检索策略
  Java网络编程-->RMI框架
  精通Spring-->Vue Router路由管理器
  Vue3开发-->计算属性和数据监听
  聊聊Nodejs中的模块化和事件循环
  vue30道面试题
  本以为精通Vue,没想到被前阿里大佬虐哭了......
  Vue3.0 ref、reactive、toRef、toRefs、customRef的区别
  Vue2.0与Vue3.0主要区别总结
  JavaScript Promise对象的用法
  HTML5中的 Web Worker的使用
  Vue选项的用法
  Vue经典面试题: Vue.use和Vue.prototype.$xx有血缘关系吗? -
  vue导出pdf格式文件
  Vue开发常用的框架及案例
  HTML表单元素的用法
  JavaScript中的HTML DOM Button 对象
  jQuery UI 范例:show()方法
  响应式 Web 设计:网格视图
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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