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中字符替换函数String.replace()使用技巧
Aug 14 Javascript
修复IE9&amp;safari 的sort方法
Oct 21 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
Nov 22 Javascript
jQuery基于当前元素进行下一步的遍历
May 20 Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
Jul 02 Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
Nov 18 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
Nov 30 Javascript
详解javascript实现瀑布流绝对式布局
Jan 29 Javascript
详解Angular中$cacheFactory缓存的使用
Aug 19 Javascript
实现单层json按照key字母顺序排序的示例
Dec 06 Javascript
Vue2.X 通过AJAX动态更新数据
Jul 17 Javascript
微信小程序 wx:for遍历循环使用实例解析
Sep 09 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配置心得包含MYSQL5乱码解决
2006/11/20 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
PHP实现图片上传并压缩
2015/12/22 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
2016/07/09 PHP
Laravel框架FormRequest中重写错误处理的方法
2019/02/18 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
Angular1.x复杂指令实例详解
2017/03/01 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
微信小程序wepy框架笔记小结
2018/08/08 Javascript
JS实现移动端双指缩放和旋转方法
2019/12/13 Javascript
Vue使用轮询定时发送请求代码
2020/08/10 Javascript
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
解决Python下imread,imwrite不支持中文的问题
2018/12/05 Python
linux安装python修改默认python版本方法
2019/03/31 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
如何在django中添加日志功能
2020/02/06 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
Vision Direct比利时:在线订购隐形眼镜
2019/08/27 全球购物
中东奢侈品购物网站:Ounass
2020/09/02 全球购物
自考毕业自我鉴定范文
2013/10/27 职场文书
小学开学寄语
2014/01/19 职场文书
六一亲子活动总结
2014/07/01 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
新郎新娘致辞
2015/07/31 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书