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 相关文章推荐
关于JS控制代码暂停的实现方法分享
Oct 11 Javascript
读取input:file的路径并显示本地图片的方法
Sep 23 Javascript
javascript写的一个模拟阅读小说的程序
Apr 04 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
Mar 13 Javascript
jquery获取当前元素索引值用法实例
Jun 10 Javascript
JavaScript脚本判断蜘蛛来源的方法
Sep 22 Javascript
JS操作COOKIE实现备忘记录的方法
Apr 01 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
Dec 02 Javascript
js下载文件并修改文件名
May 08 Javascript
vue自定义指令directive的使用方法
Apr 07 Javascript
js实现多图和单图上传显示
Dec 18 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 04 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
写了一个layout,拖动条连贯,内容区可为iframe
2007/08/19 Javascript
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
Extjs 几个方法的讨论
2010/01/28 Javascript
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
用jquery实现等比例缩放图片效果插件
2010/07/24 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
JS 实现图片直接下载示例代码
2013/07/22 Javascript
在HTML中插入JavaScript代码的示例
2015/06/03 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
2016/01/26 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
利用Angular.js限制textarea输入的字数
2016/10/20 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
浅谈angular表单提交中ng-submit的默认使用方法
2018/09/30 Javascript
关于JS解构的5种有趣用法
2019/09/05 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
Python实现复杂对象转JSON的方法示例
2017/06/22 Python
Python实现获取照片拍摄日期并重命名的方法
2017/09/30 Python
高效使用Python字典的清单
2018/04/04 Python
Python如何发布程序的详细教程
2018/10/09 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
Python如何优雅获取本机IP方法
2019/11/10 Python
python pyqtgraph 保存图片到本地的实例
2020/03/14 Python
学习python需要有编程基础吗
2020/06/02 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
HTML5 canvas基本绘图之文字渲染
2016/06/27 HTML / CSS
Ratchet 模态框的实现
2020/08/19 HTML / CSS
记者岗位职责
2014/01/06 职场文书
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
安全教育实施方案
2014/03/02 职场文书
工程力学专业自荐信范文
2014/03/17 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL