JavaScript的function函数详细介绍


Posted in Javascript onNovember 20, 2021

通过函数来封装任意多条语句,而且可以在任何地方、任何时间调用执行。

而我们的JavaScript脚本语言比较特殊,相对于C语言,它的参数是不需要数据类型加持的。返回值return,我就不过多描述,他是和 C语言通的,如果没写他就会自动返回undefined

function fun(x,y){
            
        }
//写成这样就可以声明一个函数

以我的理解他就是以对象的形式来传入参数,通过对象的各项属性值(引用类型的值),来作为我的实际参数,

例如我有以下做法:

function fun(x, y) {
          //  alert("x的值是" + x.value);
            alert("x的值是" + x);
        }

当我是这种操作的时候,他的弹出框报错是:x的值是[object HTMLInputElement],以对象的形式传入的它是不符合我的逻辑设计的,应该是下面的这种做法。

返回我的x的value值。

function fun(x, y) {
            alert("x的值是" + x.value);
          //  alert("x的值是" + x);
        }
  • 所以当我设计一个简单的,两个整数数字相乘,返回值。
  • 这里就要特别记忆一下<form></form> 要把输入的这一段html代码写在这个标签里。不然你将会找好半天错误(别问我怎么知道的,说多了都是泪)

JavaScript的function函数详细介绍

咋们是深度理解,先别急,再看看这段代码:

JavaScript的function函数详细介绍

是不是着这里有着不一样的发现,照以前的这个函数写法,铁定是在乱写,是不是?但是他在这里是能运行的,笑死(开心的笑)

JavaScript的function函数详细介绍

也就是说ECMAScript函数不介意传进来多少个参数,也不在乎你传进来个神马参数,解析器永远都不会有任何怨言。(太爽了,老师再也不用担心我不会传参了),那他是如何解决这个“世纪难题 ”的呢,其实在每个函数体内,都有一个arguments对象来访问这个参数数组,从而获取传递给数组的每一个参数。

道友试试给下面代码fun函数用双引号fun(“勇敢”,“牛牛”),会发生什么现象,解释一下就是上引号就近配对,呜呜呜呜

哎,这和咱们学的java函数重载是不是有点那味道了呀,其实JavaScript是没有重载滴。

再看两个例子:

JavaScript的function函数详细介绍

function fun() {
    if (arguments.length == 1) {
        alert(arguments[0] + 10);

    }
    if (arguments.length == 2) {
        alert(arguments[0] + arguments[1]);
    }
}
fun(10);//20
fun(10,20);//30

也只能通过传入参数的个数上,实现适当的功能,并不是实现真正意义上的重载,虽然特性算不上完美的重载,但是也足够弥补JavaScript的这一遗憾。arguments也可以与参数与一起使用,

如下:

function fun(num1, num2) {
    if (arguments.length == 1) {
        alert(num1 + 10);

    }
    if (arguments.length == 2) {
        alert(arguments[0] + num2);
    }

}
fun(10);//20
fun(10, 20);//30

那么就有宝问了,参数反正都是赋值在arguments对象中,那么我直接修改 arguments[i] 值是否可行呢?

  • 那有意思的是,关于arguments行为,它的值永远与对应的命名参数值保持同步,他会修改当下函数内的值!!!,也就是说参数与arguments[i]内存空间时独立的,但是值会同步。
function fun(num1, num2) {
    arguments[1] = 10;
    alert(arguments[0] + num2);
}

</script>
<form>
 <br><input type="button" onclick="fun(10,20)" value="点击">
</form>

他弹出框的值就是20;可见是修改arguments[i]值,会自动反应到这个参数当中,要是没有这个参数,重写这个参数值,将会导致语法错误。代码不会执行。如果有两个相同的函数名他不会报错,但是该名字只属于后定义的函数。

总结:

  • JavaScript函数与其他语言函数有很多细节之处不同。
  • 无需非得要返回值,因为在任何时候他都可以返回任何值
  • arguments.length长度由传入参数的个数确定,而不是定义时函数的命名数决定。
  • 是没有重载的,即参数是可以0个或者多个的的数组形式参与的,并且通过arguments对象来访问这些参数。

到此这篇关于JavaScriptfunction函数详细介绍的文章就介绍到这了,更多相关JavaScript的function函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
返回对象在当前级别中是第几个元素的实现代码
Jan 20 Javascript
JS获取各种浏览器窗口大小的方法
Jan 14 Javascript
浅析tr的隐藏和显示问题
Mar 05 Javascript
tablesorter.js表格排序使用方法(支持中文排序)
Feb 10 Javascript
VueJS如何引入css或者less文件的一些坑
Apr 25 Javascript
基于AngularJS的简单使用详解
Sep 10 Javascript
node内置调试方法总结
Feb 22 Javascript
Angular 组件之间的交互的示例代码
Mar 24 Javascript
详解vue中$nextTick和$forceUpdate的用法
Dec 11 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
May 31 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
Jun 02 jQuery
基于ajax及jQuery实现局部刷新过程解析
Sep 12 jQuery
JavaScript文档对象模型DOM
Nov 20 #Javascript
四十九个javascript小知识实用技巧
Nov 20 #Javascript
js不常见操作运算符总结
Nov 20 #Javascript
javascript的setTimeout()使用方法总结
Nov 20 #Javascript
JavaScript异步操作中串行和并行
Nov 20 #Javascript
vue中 this.$set的使用详解
如何用vue实现网页截图你知道吗
You might like
德生9700DX电路分析
2021/03/02 无线电
让PHP支持页面回退的两种方法
2008/01/10 PHP
超级简单的php+mysql留言本源码
2009/11/11 PHP
关于PHP的curl开启问题探讨
2014/04/08 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
浅谈php自定义错误日志
2015/02/13 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
php微信开发接入
2016/08/27 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
Ajax基础知识详解
2017/02/17 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
Angular实现的进度条功能示例
2018/02/18 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
2020/06/11 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
极简的Python入门指引
2015/04/01 Python
Python实现TCP/IP协议下的端口转发及重定向示例
2016/06/14 Python
python之从文件读取数据到list的实例讲解
2018/04/19 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
2020/10/04 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
Feelunique德国官方网站:欧洲最大的在线美容零售商
2019/07/20 全球购物
国际经济贸易专业推荐信
2013/11/06 职场文书
致长跑运动员广播稿
2014/01/31 职场文书
中秋节主持词
2014/04/02 职场文书
房屋委托书范本
2014/04/04 职场文书
植树节标语
2014/06/27 职场文书
学校政风行风自查自纠报告
2014/10/21 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
行政答辩状范文
2015/05/21 职场文书