javascript|不知道这10个术语,你还敢说会JavaScript?( 二 )



正如您从上面的代码中看到的那样 , 除了waiterorder 函数内部的所有内容及其返回值之外的所有内容都不会暴露给外界 。
4. Currying这种效果以Haskell Curry的名字命名 , 指的是使用具有单参数的多个函数来代替具有多个参数的单个函数 。 例如 , 让我们看看下面的add函数 。

这两个函数都是返回相同的结果 。 该函数在返回时addx接受一个参数 , 该参数又接受该值 , 执行加法并返回总和 。 xaddyy``x
该函数add简单地同时接受两者x , y执行加法并返回总和 。 到目前为止 , 第一个功能可能看起来不是很有用 , 直到……

现在 , 前一个函数突然变得有趣起来 。 在currying中 , 您总是可以修复一系列操作中的一个步骤 , 比如从上述代码中添加4 , 这在操作中使用的一个变量始终相同时很有用 。
5. HoistingHoist的意思是举起东西 。 JavaScript 中的Hoist也意味着相同 , 提出的是声明(变量和函数声明) 。
声明是使用关键字var(不适用于全局)和function.
无论您在哪个地方输入代码来声明函数或变量 , 在评估期间 , 所有声明都会在它们所在的范围内向上移动(严格模式除外) 。 因此 , 可以编写一个工作代码 , 将函数调用代码放在函数声明之前 。

6. MutationMutation意味着改变或修改 。 如果你在 JavaScript 中遇到过Mutation这个词 , 它可能指的是 DOM 元素所经历的变化 。
甚至还有一个称为 MutationObserver 的 API 可以密切关注 DOM 突变 , 例如添加子元素或更改元素的属性 。
7. PragmaPragma是实用信息的缩写 。 在简单的英语中 , pragmatic 是一个形容词 , 表示明智和实用 。 在编程中 , pragma是指包含有关编译器或解释器或汇编器应如何处理程序有用信息的代码 。
它对编程语言本身没有任何贡献 , 其语法可能会有所不同 。 它们只影响编译器的行为 。 JavaScript 也有很少的 pragma , 其中之一是strict.
\"use strict\";

通过上述 pragma , JavaScript 代码将以严格的模式执行 。 在严格模式下 , 不允许错误的语法 , 不进行提升 , 显示静默错误等 。 它有助于编写更安全和优化的 JavaScript 代码 。
8.SentinelsSentinels是守卫的士兵(还记得 X 战警中的哨兵吗?) 。 在编程中 , Sentinels是用来指示循环或过程结束的值 。 它们也可以称为“flags” 。
【javascript|不知道这10个术语,你还敢说会JavaScript?】您可以使用任何合理的值作为sentinel 。 这是JavaScript 中使用的哨兵的示例;indexOf当在目标字符串中找不到搜索值时返回 -1(标记值)的方法 。 下面是一个返回数组值位置的函数 , 如果找不到值 , 则返回 -1 。

9.Vanilla这个单词是香草味的意思 , 哈哈哈 , 有可能外国人喜欢冰激凌吧 。 不仅在冰淇淋中 , 而且在几乎所有甜食中 , 香草都成为了标准口味 。 我见过不少蛋糕食谱 , 他们在混合物中至少加入一滴香草——只是为了增加味道 。
这就是香草* , 一种传统的标准风味 。 *Vanilla JavaScript 指的是标准 JavaScript——没有框架 。 Vanilla 实际上不仅用于描述 JavaScript 的标准版本 , 还用于描述 CSS 等其他语言 。
10. VariadicVariadic是通过连接“variable”和“adicity”而创建的形容词 。 “Adicity”来自古希腊语 , 其含义与拉丁词“arity”(此列表中的第 1 项)相同 。 因此 , 术语Variadic用于表达具有可变数量参数的东西 。
在 JavaScript 中 , Variadic函数接受任意数量的参数 。 它可以使用arguments属性、apply方法以及从 ES6 开始的扩展运算符来创建 。 下面是使用扩展运算符的示例 。