>>分享Web前端开发技术,并对孙卫琴的《精通Vue.js:Web前端开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 21093 个阅读者 刷新本主题
 * 贴子主题:  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开发-->Web运作原理(Ⅳ)
  JSP与Hibernate开发-->映射对象标识符
  Java网络编程-->非阻塞通信
  精通Spring-->绑定表单
  Vue3开发-->Vue简介
  大部分人都会做错的经典JS闭包面试题
  勇闯28个关卡学会HTML与HTML5基础
  javaScript中"=="和"==="运算符的区别
  Vue 项目从 Vue CLI 2 升级到 Vue CLI 4
  介绍axios的基本使用(vue中使用axios)
  Vue 3新特性RFC-0026异步组件的全新API
  CSS3的@keyframes用法详解
  vue-min-picker普通选择器,日期选择器,省市区选择器,适用...
  vue实现Word或Excel文档导出的功能,转换文件名乱码或者json...
  jQuery 选择器
  Javascript DOM封装方法汇总
  JavaScript 严格模式(use strict)
  JavaScript 调试
  JavaScript 函数 的定义和使用
  JavaScript基础入门
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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