当前位置: 首页 > Web前端 > JavaScript

连这10个术语都不会,还敢说你会JavaScript?

时间:2023-03-27 17:05:49 JavaScript

每个行业都有自己的“行话”。不懂这些行话的人,很难融入这个行业,也永远装不下。从Curry到Closes,有大量的JavaScript行话(领域内使用的特殊词汇),了解这些行话不仅能帮助你增加词汇量,还能更好地理解JavaScript。术语经常出现在文档和技术文章中。但是其中一些,比如Closes,是非常标准的东西。了解单词本身的含义可以帮助您更好地理解它命名的概念。今天我们将讨论10个JavaScript术语的汇编,以及它们在JavaScript中的含义和上下文。如果您是初学者,此列表会为您提供提升等基础知识。同时,还包括鲜为人知或鲜为人知的术语。1.ArityArity(来自拉丁语)是一个术语,用于指代函数或操作中参数或操作数的数量。当它用于指代JavaScript函数期望的参数数量时,您最有可能在JavaScript领域遇到这个术语。该对象甚至有一个名为arity的属性,Function返回函数中预期参数的数量。但它已经过时了,现在length取代了它返回的参数数量。以下函数具有三个输入参数。functiongetName(first,middle,last){returnfirst+''+middle+''+last;}2.AnonymousAnonymous是一个形容词。当某事或某人被称为Anonymous时,这意味着该事物或人的名字是未知的。同样,在JavaScript中,匿名函数是不通过名称标识的函数。(函数(){//正文})();上面是一个IIFE(立即调用的函数表达式)。其中的函数没有名称。让我们也看看下面的varfoo=function(){};这也称为匿名函数,因为关键字后没有名称函数。在这里,我对“Anonymous”的使用有点疑惑,使用IIFE,函数被立即调用,不涉及名称,后面函数foo()的调用需要使用语法。这就像我们用名称“foo”命名了一个未命名的函数,并用它来调用它。这是匿名函数吗?不知道,还得问javascript之父。撇开我的困惑不谈,它们确实都被称为匿名函数。3.Closure这是牛津词典中closure的定义之一:“关闭或密封某物的东西,例如帽子或领带”。在JavaScript中,闭包是一个可以在外部函数范围之外访问的内部函数,它与外部函数变量的连接仍然完好无损。为了解释闭包(可能不准确,但足够简单),我们可以将闭包想象成餐厅的服务员。我们去饭店吃饭,菜都是厨师做的,大部分时间都在饭店的厨房里,我们是不能进去的。我们应该如何获取食物?那是服务员帮忙我们点菜,服务员去厨房,通知厨师订单,并在订单准备好后把饭菜端给我们。这样我们就没有违反任何“规则”,我们可以享受美食。服务器是能够将我们的订单带到厨房并返回食物的员工。闭包是类似的“雇员”,可以从函数内部获取我们的参数并带回我们的变量(准确地说是对那些变量的引用)。函数顺序(){var食物;功能服务员(订单){厨师(订单);退回食物;}functionchef(order){if(order==='pasta'){food=['pasta','gravy','seasoning'];厨师();}}functioncook(){food.push('煮熟');}返回服务员;}varmyOrder=order();console.log(myOrder('意大利面'));//Array["pasta","gravy","seasoning","cooked"]从上面的代码可以看出,除了waiterorder函数内部及其返回值之外的所有内容都不会暴露给外界。4.Currying这种效果,以HaskellCurry命名,指的是使用带有单个参数的多个函数而不是带有多个参数的单个函数。例如,让我们看看下面的添加功能。函数addx(x){函数addy(y){返回x+y;}returnaddy}functionadd(x,y){返回(x+y);}console.log(addx(3)(4));\\7控制台日志(添加(3,4));\\7这两个函数返回相同的结果。该函数在返回addx时接受一个参数,该参数又接受值、执行加法并返回总和。xaddyy``x函数add简单地接受x,y并执行加法并返回总和。到目前为止,第一个函数可能看起来不是很有用,直到...varadd4=addx(4);控制台日志(add4(8));//12console.log(add4(6));//10console.log(add4(-74));//-70现在,之前的函数突然变得有趣了。在柯里化中,您始终可以固定一系列操作中的一个步骤,例如从上面的代码中添加4,这在操作中使用的一个变量始终相同时很有用。5.HoistingHoist意思是举东西。JavaScript中的Hoist也是同一个意思,提出的是声明(变量和函数声明)。使用关键字var(不适用于全局变量)和function进行声明。无论您在何处输入代码来声明函数或变量,在评估期间,所有声明都会向上移动它们所在的范围(严格模式除外)。因此,可以编写将函数调用代码放在函数声明之前的工作代码。varname='Velma';console.log(sayCatchPhrase(名字));/“疯子!”functionsayCatchPhrase(name){phrases={'FredFlintstone':'Yabbadabbadoo!','Velma':'Jinkies!','Razor':'宾果游戏!','He-Man':'我有力量'};返回短语[名称];}6.MutationMutation表示改变或修改。如果您在JavaScript中遇到过突变这个词,它可能指的是DOM元素经历的变化。甚至还有一个名为MutationObserver的API来关注DOM变化,例如添加子元素或更改元素的属性。7.PragmaPragma是PragmaticInformation的缩写。在简单的英语中,pragmatic是一个形容词,意思是明智和实用的。在编程中,pragma是包含有关编译器或解释器或汇编器应如何处理程序的有用信息的代码。它对编程语言本身没有任何贡献,并且它的语法可能会有所不同。它们只影响编译器的行为。JavaScript也有很少的pragma,其中之一是strict."usestrict";使用上面的pragma,JavaScript代码将在严格模式下执行。在严格模式下,不允许错误的语法,不进行提升,显示静默错误等。它有助于编写更安全和优化的JavaScript代码。8.哨兵哨兵是看守士兵的(还记得X战警里的哨兵吗?)。在编程中,哨兵是用来表示循环或过程结束的值。它们也可以称为“旗帜”。您可以使用任何合理的值作为标记。这是JavaScript中使用的哨兵的示例;当在目标字符串中找不到搜索值时返回-1(标记值)的indexOf方法。下面是一个返回值在数组中的位置的函数,如果找不到该值,则返回-1。函数getPos(ary,val){vari=0,len=ary.length;for(;i