JS函数总结

目录

JS函数

普通函数

参数默认值函数

REST参数函数

argument

...

扩展运算符函数

箭头函数

尾调函数

函数的10种调用方式

普通调用方法

call调用

apply调用

构造调用

模板调用

定时器调用

普通函数转化为函数表达式调用

函数表达式的三种调用:

普通调用

正常调用

箭头函数调用


 

 


JS函数

普通函数

参数默认值函数

{
			function text(x,y="word!"){
				console.log(x,y);
			}
			//调用
			text("Hello");
		}

这种是在制定方法的时候就已经给参数定义了初始值,假如调用给方法的时候,有给新的参数来覆盖的话,就覆盖默认值,就算不给该参数也有默认值

REST参数函数

argument

arguments的也是个对象,而且是一个特殊的对象,它的属性名是按照传入参数的序列来的,它还有length属性,存储的是当前传入函数参数的个数,这种对象叫做类数组对象.

arguments.callee完完整整的把这个函数的这段代码返回

查看更多

{
			function tt(){
				for(let a=0; a<arguments.length;a++){
					console.log(arguments[a]);
				}
			}

			tt(1,34,34,45,'a');
		}

...

{
			function tt(...a){
				for(let v of a){
					console.log(v);
				}
			}

			tt(1,23,43,25,53);
		}

扩展运算符函数

把数组变成字符串的最快方法,严格来说他并不算是一个函数,只能说是一个比较特殊的应用

{
			console.log([1,2,3,4,5,6,7]);     //[1, 2, 3, 4, 5, 6, 7]
			console.log(...[1,2,3,4,5,6,7]);  //1 2 3 4 5 6 7

			console.log('a',...[1,2,3,4,5,6]);//a 1 2 3 4 5 6
		}

箭头函数

{
			let add = v => v*2;

			console.log(add(4));//8
		}
{
			let return5 = () => 5;

			console.log(return5());//5
		}

格式是前面的是方法名,中间的是参数,最后面的是方法体,假如没有参数,也要在中间写上一个参数来代替;

 

在js中==比较的是两者的字符是否相等,不区分类型,相当于java中的equals

===比较的就是内存地址,假如两者的内存地址一样才算是同一个对象,相当于java中的==

 

尾调函数

递归:在一个方法的最后子啊调用自己,相当于无限循环

作用:用来保持监听

但是有一个致命的缺点:会导致函数的地址嵌套,资源奔溃,所以现在一般是不用了的,改用尾调函数来代替

//尾调函数:在方法的最后一句调用其他的方法

{
			function fx(x){
				console.log(fx);
				return tail(x);
			}

			function tail(x){
				console.log(tail);
				return fx(x);
			}

			tail(2);
		}

函数的10种调用方式

普通调用方法

{
			function text(){
				console.log("TEXT");
			}
			text();
		}

call调用

{
			function text(str){
				console.log(str);
			}
			//调用对象必须写在第一位
			text.call(text,"diaoyong");
		}

调用对象必须写在第一位

apply调用

{
			function text(str){
				console.log(str);
			}
			//调用对象必须写在第一位
			text.apply(text,["diaoyong"]);
		}

构造调用

{
			function text(str){
				console.log(str);
			}
			new text("构造调用");
		}

模板调用

{
			function text(str){
				console.log(str);
			}
			text `模板调用`;//["模板调用", raw: Array(1)]
		}

定时器调用

自动调用:它的调用时间是所有调用方法执行完毕以后才会执行的

{
			function text(str){
				console.log(str);
			}
			setTimeout(text,0,"定时器调用");
		}

普通函数转化为函数表达式调用

const text = function(test){
				console.log(test);
			}("jin");

函数表达式的三种调用:

普通调用

{
			const text = function(text){
				console.log(text);
			}("这就是直接调用,假如没有参数的话是不允许这样调用的");
		}

正常调用

箭头函数调用

{
			const test = new Function("x","y",console.log("x"+"y"));
			
		}

方法特别简单的时候就可以这样写,假如只有一个参数就是方法体,假如有多个参数,前两个就是参数,最后一个就是方法体

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值