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 相关文章推荐
判断控件是否已加载完成的代码
Feb 24 Javascript
js传参数受特殊字符影响错误的解决方法
Oct 21 Javascript
js 获取元素在页面上的偏移量的方法汇总
Apr 13 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
Jun 11 Javascript
两种方法解决javascript url post 特殊字符转义 + &amp; #
Apr 13 Javascript
很实用的js选项卡切换效果
Aug 12 Javascript
JS中的phototype详解
Feb 04 Javascript
seajs模块压缩问题与解决方法实例分析
Oct 10 Javascript
Vuejs 单文件组件实例详解
Feb 09 Javascript
vue 左滑删除功能的示例代码
Jan 28 Javascript
JS实现字体背景跑马灯
Jan 06 Javascript
Nuxt.js nuxt-link与router-link的区别说明
Nov 06 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 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
注意:php5.4删除了session_unregister函数
2013/08/05 PHP
PHP程序员的技术成长规划
2016/03/25 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
use jscript with List Proxy Server Information
2007/06/11 Javascript
javascript 冒号 使用说明
2009/06/06 Javascript
js实现页面跳转重定向的几种方式
2014/05/29 Javascript
EasyUI中实现form表单提交的示例分享
2015/03/01 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
实例分析编写vue组件方法
2019/02/12 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
Python中对列表排序实例
2015/01/04 Python
Python3里的super()和__class__使用介绍
2015/04/23 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
python读取各种文件数据方法解析
2018/12/29 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
python实现五子棋人机对战游戏
2020/03/25 Python
python动态进度条的实现代码
2019/07/03 Python
python入门之井字棋小游戏
2020/03/05 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
python def 定义函数,调用函数方式
2020/06/02 Python
PyQt5的相对布局管理的实现
2020/08/07 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
Python之qq自动发消息的示例代码
2021/02/18 Python
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
财务会计毕业生自荐信
2013/11/02 职场文书
清洁工表扬信
2014/01/08 职场文书
采购人员的个人自我评价
2014/01/16 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书