Как мне переназначить else, если в javascript функционирует то же самое, но напечатано как elif? - PullRequest
0 голосов
/ 15 октября 2019

В настоящее время я занимаюсь программированием на JavaScript, и мне не нравится вводить , если каждый раз, когда мне нужно его использовать. Я бы предпочел просто набрать 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 для моей собственной версии кода - задача, которую, я думаю, я пытаюсь выполнить, если это имеет смысл. Таким образом, я могу сократить это и сделать все быстрее, чем я мог раньше. Так что я действительно ищу лучший / рабочий способ, потому что мой текущий метод, показанный выше в коде, не работает, возможно, это какая-то форма метода или другой способ изменения имени if ... else, сохраняющийта же самая функция только что напечатала / сказала различный в коде.

Ответы [ 3 ]

0 голосов
/ 15 октября 2019

Полагаю, вы могли бы сделать это для console.log. По сути, вы создадите функцию для console.log. Да, это быстрее, чтобы напечатать, но будет выполнять 2 функции.

let x;
const y = "hello world"

const cl = function (x) {
  console.log(x)
 }
 
 
 // Function call.
 cl (y)
0 голосов
/ 15 октября 2019

Ответ:

Да, это возможно.

Как примечание, отличная идея - это отличная идея для любых производственных проектов. однако по множеству разных причин это довольно простой процесс для игрушечного кода или фрагментов.

How:

Вы можете создать тег сценария text/template, проанализировать его для Регулярные выражения или Простой текст - как и любая другая строка - замените его на то, что вы хотите, затем поместите его в конструктор Function и назовите его.

Дольшеобъяснение, которое я написал в статье некоторое время назад, можно найти здесь: https://medium.com/wdstack/understanding-javascript-micro-templating-f37a37b3b40e

Более крупный пример с парой различных настроек кода (например, вместо if(a === b || a === c) вы можете написать if(a === b || 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".


Заключение

Я не знаю, подчеркнул ли я это достаточно, ха-ха, но серьезно do НЕ используйте это в Production . :)

В любом случае, надеюсь, этот трюк помог ответить на ваш вопрос! Счастливого кодирования!

0 голосов
/ 15 октября 2019

Вы не можете назначить оператор переменной, вы можете только назначить выражение.

if, else и else if - все операторы (наряду с try/catch, switch, for, while и т. Д.)

Короче говоря, нет никакого реального способа, с помощью которого бит может работать.

Для псевдонима существующей функции вы просто назначаетесуществующая функция для новой переменной, например:

const c = {}
c.l = console.log
c.l('console','.','log','arguments')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...