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 相关文章推荐
怎么选择Javascript框架(Javascript Framework)
Nov 22 Javascript
用javascript将数据导入Excel示例代码
Sep 10 Javascript
Node.js抓取中文网页乱码问题和解决方法
Feb 10 Javascript
JavaScript中的关联数组问题
Mar 04 Javascript
Javascript刷新窗口方法小结
Oct 21 Javascript
浅谈js中几种实用的跨域方法原理详解
Dec 02 Javascript
JavaScript实现时钟滴答声效果
Jan 29 Javascript
ES6新特性之变量和字符串用法示例
Apr 01 Javascript
seajs中模块依赖的加载处理实例分析
Oct 10 Javascript
基于jQuery实现定位导航位置效果
Nov 15 jQuery
Javascript中从学习bind到实现bind的过程
Jan 05 Javascript
element-ui表格数据转换的示例代码
Aug 24 Javascript
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
php车辆违章查询数据示例
2016/10/14 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
js取得url地址参数实例
2013/02/22 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
2013/07/09 Javascript
IE6 hack for js 集锦
2014/09/23 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
Angular中ng-options下拉数据默认值的设定方法
2017/06/21 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
详解NODEJS的http实现
2018/01/04 NodeJs
vue如何判断dom的class
2018/04/26 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
Python3.x和Python2.x的区别介绍
2013/02/12 Python
解决Python 遍历字典时删除元素报异常的问题
2016/09/11 Python
python解决Fedora解压zip时中文乱码的方法
2016/09/18 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
基于Django contrib Comments 评论模块(详解)
2017/12/08 Python
python中pip的安装与使用教程
2018/08/10 Python
利用Python将文本中的中英文分离方法
2018/10/31 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
日本网路线上商品代购服务:转送JAPAN
2016/08/05 全球购物
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
教师师德演讲稿
2014/05/06 职场文书
给市场的环保建议书
2014/05/14 职场文书
化工见习报告范文
2014/10/31 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
医德医风学习心得体会
2016/01/25 职场文书
使用GO语言实现Mysql数据库CURD的简单示例
2021/08/07 Golang
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS