Можем ли мы согласиться с тем, что html и css были довольно простыми? Когда я копался в кроличьей норе веб-разработки, я чувствовал себя уверенно. Я мог центрировать div и даже сдал последний экзамен по html и css.

Это был этап медового месяца в моем путешествии. Дальше был джаваскрипт. будьте готовы прыгнуть в глубокий конец бассейна детей. Javascript — это совсем другое животное. Если быть честным, я боролся за первую неделю его изучения. Я не могу дать много советов о том, как стать мастером javascript, но, возможно, этот лакомый кусочек поможет вам не биться головой о стену и сэкономит ваше время.

Мне пришлось создать калькулятор узлов для проекта в моем курсе javascript. это выглядело немного примерно так.

function firstPick () {
    const num1 = rs.question('Pick a number? ');    
    if (!isNaN(num1) === true) {
      return num1;
    } else {
        console.log('Invalid..try again.')
       return firstPick();        
    }
}
 firstPick();

 console.log('You have selected ' + num1 +'.');

После того, как я выбрал номер, я ожидал, что он запишет в console.log номер, который я выбрал. вместо этого я получил num1 undefined.

Я был озадачен. Он должен выдать номер, который я выбрал. Я уже собирался начать биться головой о стену, когда понял кое-что из своих занятий, что я забыл. Масштаб.. Я забыл масштаб.

Когда вы объявляете переменную в javascript, и у вас есть то, что называется локальной и глобальной областью действия. Это означает, что определенные переменные в зависимости от того, где они расположены в проекте, определяют, как вы можете получить к ним доступ. Например.

Это пример глобального охвата. Переменная green объявлена ​​перед функцией printColor, что означает, что функция может использовать эту переменную для выполнения своей задачи.

Это пример локальной области действия. favColor вложен в функцию printColor. Поэтому, когда я использую его в своем console.log на кнопке страницы и нажимаю Enter, я должен получить зеленую печать на консоли или так я думал. На самом деле я получил favColor undefined.

Это из-за размаха. Локальная переменная не может использоваться глобально во всем проекте.

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

function firstPick () {
    const num1 = rs.question('Pick a number? ');    
    if (!isNaN(num1) === true) {
      return num1;
    } else {
        console.log('Invalid..try again.')
       return firstPick();        
    }
}
 var n1 =firstPick();

 console.log('You have selected ' + n1 +'.');

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

Надеюсь, это поможет кому-то и сэкономит вам время и нервы.