如何在 javascript 中重新分配 else if 使其功能相同但键入为 elif?

How do I re-assign the else if in javascript to function the same but typed as elif?

我目前正在做一些 JavaScript 编程,不喜欢每次需要使用它时都必须键入 else if。我宁愿只输入 elif。我做了很多研究,不知道我怎么能得到这样的东西......看看代码......在我仍然可以说 elif 的地方工作,但它被认可了否则如果我可以在没有程序的情况下使用它。

elif = else if;
let x = 20;
if (x >= 21) {
  console.log('psych bwah!');
} elif (x <= 19 ) {
  console.log('umm... nope try again bud!');
} else {
  console.log('ladies and gentlemen we gotem!');
}

我真的非常希望它能如此有效。如果能理解如何用我想要使用的术语重写预制代码,那将是一件令人愉快的事情。我试图完成的另一个例子是将 console.log() 打印功能重新分配给更短但仍然做完全相同的事情,也许 c.l() 作为更短的版本,只是为了举例。

能够将已经可用的普通 JavaScript 代码分配给我自己的代码版本是我想我正在努力完成的任务,如果这有意义的话。这样我就可以 shorthand 它并使一切都比我以前能做的更快。所以我真正在寻找的是一种 better/working 方式,因为我在上面代码中看到的当前方法不起作用,可能是某种形式的方法或其他更改 if 名称的方式......否则保持相同的功能只是 typed/said 代码不同。

不能将语句赋值给变量,只能赋值给表达式。

ifelseelse if都是语句(连同try/catchswitchforwhile, 等等..)

简而言之,bit 没有真正的工作方式。

要为现有函数添加别名,您只需将现有函数分配给一个新变量,如下所示:

const c = {}
c.l = console.log
c.l('console','.','log','arguments')

我相信你可以做到 console.log。您实际上是在为 console.log 创建一个函数。是的,它的输入速度更快,但会执行 2 个功能。

let x;
const y = "hello world"

const cl = function (x) {
  console.log(x)
 }
 
 
 // Function call.
 cl (y)

答案:

是的,有可能。

请注意,出于多种不同的原因,对任何生产项目执行此操作并不是一个好主意,但是,对于玩具代码或片段来说,这是一个相当简单的过程.

如何:

您可以创建一个 text/template 脚本标签,将其解析为 正则表达式 纯文本 - 就像任何其他字符串 - 将其替换为您想要的任何内容,然后将其放入 Function 构造函数中并调用它。

我前段时间在一篇文章中写的更长的解释可以在这里找到:https://medium.com/wdstack/understanding-javascript-micro-templating-f37a37b3b40e

可以在此处找到一个更大的示例,其中包含一些不同的代码调整(例如,您可以编写 if(a === b || c) 而不是 if(a === b || a === c) ):https://codepen.io/zfrisch/pen/ENpvOq


Elif 的基本示例:

var scriptText = document.querySelector('#microTemplate').innerText,

parsed = scriptText.replace(/elif/g, "else if"),

fn = new Function(parsed);

fn();
<script id="microTemplate" type="text/template">
  let a = 5;
  
  if(a < 5) console.log("a is less than 5");
  
  elif(a === 5) console.log("a is 5");
  
  else console.log("a is greater than 5");
</script>

注意 请记住,这些示例中并没有充满完整的正则表达式。这只是 如何 进行简单转译的一个基本示例。例如,如果您在上面的代码中放置一个带有 "elifant" 的字符串,它将写入 "else ifant"


结论

我不知道我是否强调得够多了,哈哈,但是说真的不要不要在生产中使用它。 :)

无论如何,我希望这个技巧能帮助回答您的问题! 编码愉快!