JavaScript中函数的使用

Function

函数实际上是对象,每个函数都是函数类型的实例。
函数通常以函数声明的形式定义。
无需在函数定义末尾添加分号。

functionzss(a1,a2){returna1*a2}

如果我们定义函数的语法是函数表达式,那么函数表达式和函数声明几乎一样。

这里函数末尾有一个分号。
:

letzss=function(a3,a4){returna3*a4};

我们还可以使用箭头函数来定义函数。
箭头函数的定义有点像函数表达式:

letzss=(a5,a6)=>{returna5*a6;};

当箭头函数只有一个参数时,括号可以使用省略,如果没有参数或者多个参数,则需要使用括号。
如果箭头函数不使用花括号,则箭头后面只能有一行代码。
还有一些场景不能使用arguments、super、new.target等箭头函数,也不能使用构造函数。
此外,箭头函数没有原型属性。
如果函数是使用箭头函数语法定义的。
我们传递给函数的参数将无法通过arguments关键字访问,而只能通过某些命名参数访问。

functionzss(){console.log(arguments)}zss(7);//7letadd=()=>{console.log(arguments)}add(7)//ReferenceError:argumentsinnotdefine;

ECMAscript函数没有签名,因为参数由包含零个或多个值的数组表示。
没有函数签名,重载自然是不可能的。
默认情况下,函数参数仅在调用函数时计算,而不是在定义时计算。
尽管箭头函数不支持参数对象,但它们确实支持定义要收集的参数。

在执行任何代码之前,JavaScript引擎将首先读取函数声明并在执行上下文中生成函数定义。
并且函数表达式必须等待其所在行的代码执行完毕,才能在执行上下文中生成函数定义。
发动机也会升高函数声明位于顶部。

console.log(6,4);functionzss(a1,a2){returna1*a2}

这样编写上面的代码并不困难,因为函数声明将在任何代码中。
它在执行之前被读取并添加到执行上下文中。
这个过程称为提升函数声明。
如果我们通过定义函数的方式来写,就会出现错误。
而且,函数名在ECMAScript中是一个变量,因此可以在任何可以使用变量的地方使用函数。
这意味着我们可以将一个函数作为参数传递给另一个函数,也可以从一个函数返回另一个函数。

JavaScript数组操作函数map,filter,reduce,apply及其他

在JavaScript中,批量操作函数如map()、filter()、reduce()、apply()等工具是提高代码效率和可读性的关键。
这些方法包括:map用于创建一个新数组并通过回调函数处理每个元素,过滤满足特定条件的元素并生成一个新数组,通过集合操作将所有元素返回为单个值;在非Arrit对象上调用函数,接受可变数量的参数。
让我们深入了解这些方法。
map函数通过回调函数修改每个元素并返回一个新数组,如格式化对象属性或计算数值数组。
过滤器是过滤元件,例如删除小数值或过滤无效的JSON条目。
reduce函数遍历数组,对元素进行聚合或者合并,比如聚合、对象属性累加或者数组去重等。
apply方法不同于前三位,它是Function对象的方法,用于结合参数集来执行函数。
例如,使用应用程序处理组添加或使用内置函数。
对于大型数组,应注意参数长度限制和正确的块传输。
数组的其他实用程序包括用于查找元素位置的indexOf和lastIndexOf,以及依赖于搜索函数的find和findIndex。
slice和splice方法处理切割和修改字符串,前者创建一个新数组,后者修改原始数组。
each和some方法用于检查数组元素是否满足条件,而toString和join用于转换为字符串。
最后,push()、pop()、shift()和unshift方法用于添加和删除数组元素。
掌握这些工具可以让你的代码更简洁、更容易理解。