服装网站建设什么公司好,开发板的作用,中企动力是干嘛的,网站的网络推广目录 1.函数的参数
1.1显式参数
1.2隐式参数
#xff08;1#xff09;this
(2)Arguments
1.3伪数组转换为真数组
2.函数补充知识点
2.1函数可以调用另一个函数
2.2闭包函数 1.函数的参数
1.1显式参数
显式参数就是我们自定义的参数。JavaScript函数定义显式参数时没…目录 1.函数的参数
1.1显式参数
1.2隐式参数
1this
(2)Arguments
1.3伪数组转换为真数组
2.函数补充知识点
2.1函数可以调用另一个函数
2.2闭包函数 1.函数的参数
1.1显式参数
显式参数就是我们自定义的参数。JavaScript函数定义显式参数时没有指定数据类型。
1.2隐式参数
系统给定的参数叫隐式参数隐式参数有两个this和Arguments。
1this
this代表当前执行代码的对象。它在不同的场景下指向不同的对象。
在全局作用域中this指向全局对象在浏览器中是Window对象。在函数中this的指向取决于函数的调用方式。 如果函数作为对象的方法调用this指向调用该方法的对象。如果函数作为普通函数调用this指向全局对象在浏览器中是Window对象。如果函数使用了箭头函数语法this继承自外层作用域的this与普通函数不同。在构造函数中this指向由该构造函数创建的新对象。在事件处理函数中this指向触发事件的元素。在使用call、apply或bind方法调用函数时this可以通过第一个参数来指定。
(2)Arguments
arguments 实际上它是当前函数的一个内置对象。所有函数都内置了一个 arguments 对象arguments 对象中存储了传递的所有实参。
Arguments是用来封装实参的对象。JavaScript函数对隐式参数没有进行类型检测。JavaScript函数对隐式函数的个数没有进行检测。Arguments是伪数组不具有数组的push,pop等方法但可以进行遍历可以通过索引号进行取值。 function show(a,b){console.log(arguments instanceof Array);//false//instanceof检测出arguments不是一个数组console.log(arguments[3]);//6// arguments可以通过序列号来进行取值。for(var i0;iarguments.length;i){console.log(i);//可以进行数组的遍历}}show(1,2,4,6,7,8) Arguments是函数的隐式参数它本身也是一个对象。 scriptfunction show(a,b){console.log(a,b);//1 2console.log(arguments);
//Arguments(6) [1, 2, 4, 6, 7, 8, callee: ƒ, Symbol(Symbol.iterator): ƒ]// arguments可以以一种类似数组但不是数组的方式拿到所有的实参。}show(1,2,4,6,7,8)//传参时实参个数大于形参个数/script Arguments有length属性即使没有形参也能取出来实参的值。Arguments有callee属性这个属性指向的是函数自己控制台输出的话会将函数打印出来。 function show1(){console.log(arguments.callee);/* ƒ show1(){console.log(arguments.callee);} */}show1(); 1.3伪数组转换为真数组
方法一 function show1(){console.log(arguments);//伪数组var arr[];// 定义新数组for(var i0;iarguments.length;i){arr[i]arguments[i];// 通过循环将arguments里面的每一项元素都复制到新数组中去。}console.log(arr);}show1(1,2,3,4,5,6,677,7,7)
方法二利用展开运算符 ... function show2(){var arr[...arguments];console.log(arguments);console.log(arr); }show2(1,2,3,4,5,6,677,7,7);
方法三 function show3(){// 数组 原型 分割 呼叫var arr Array.prototype.slice.call(arguments);console.log(arguments);console.log(arr);}show3(1,2,3,4,5,6,677,7,7)
2.函数补充知识点
2.1函数可以调用另一个函数
因为每个函数都是一个独立的代码块用于完成某个功能所以经常会用到函数相互调用的情况。 function fn1() {console.log(111);console.log(函数一);fn2();}function fn2() {console.log(222);console.log(函数二);}fn1();/* 111函数一222函数二*/
2.2闭包函数
闭包函数是指在一个函数内部定义的函数这个内部函数可以访问外部函数的变量和参数即使外部函数已经执行完毕内部函数仍然可以访问和操作外部函数的变量。相当于在函数内部写入了一个函数。 function outerFunction() {var x 10;function innerFunction() {console.log(x*2); // 打印外部函数的变量x}return innerFunction;}var inner outerFunction();inner(); // 输出20
缺点由于闭包会使用函数中的变量一直被保存在内存中内存消耗很大所以闭包的滥用可能会降代程序的处理速度造成内存消耗的问题内存泄露
优点使用闭包函数可以避免全局变量污染 延伸了变量的作用范围