• Для получения визы должно быть профильное образование?

    vabka
    @vabka
    Токсичный шарпист
    1. Зависит от страны
    2. Зависит от получаемой визы.

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

    В общем - идите на сайт миграционной службы/посольства интересующей страны и изучайте правила.

    PS: ну и такой вопрос уже кучу раз задавали тут
    Ответ написан
    Комментировать
  • Ценятся ли программисты-самоучки в странах Евросоюза?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Ценятся профессионалы, всем плевать, как этот профессионализм был получен. Но надо понимать, во-первых, что желающих получить blue card много, а мест мало. Поэтому вам придётся конкурировать с целой кучей профессионалов и при прочих равных шансов больше будет у обладателей дополнительной бумажки. Во-вторых, интерес западных работодателей начинается на том уровне профессионализма, который у очень выдающихся программистов достигается лет через пять работы, а у остальных через десять. То есть ваш год самообразования - вообще ничто.

    P.S. Вопрос на ресурсе задавался уже очень много раз. Для программиста критически важно уметь искать информацию самостоятельно.
    Ответ написан
    8 комментариев
  • Реально ли трудоустроиться в Германии без профильного диплома?

    Привет! Все реально, у меня профильное образование финансист, но всегда работал в IT. 3 года назад переехал работать в Германию веб-девелопером, сейчас работаю админом. Так что необходимо запастись огромным терпением и иметь огромное желание - все реально!
    Ответ написан
    9 комментариев
  • Что такое экранирование в PHP, JS? И для чего оно используется?

    Maksclub
    @Maksclub
    maksfedorov.ru
    echo 'Однажды Арнольд сказал: "I'll be back"';
    выведет ошибку, так как после буквыIидет закрывающая кавычка команды echo, а потом для PHP идет куча мусора не из синтаксиса PHP

    а вот код:
    echo 'Однажды Арнольд сказал: "I\'ll be back"';
    выведетт: Однажды Арнольд сказал: "I'll be back"

    кстати синтаксис правильно подсветил редактор, обрати внимание на красный цвет кода

    ...

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

    Целая статья на закрепление https://habrahabr.ru/post/182424/
    Ответ написан
    2 комментария
  • Почему JS самостоятельно изменяет числа?

    Seasle
    @Seasle Куратор тега JavaScript
    console.log(Number.MAX_SAFE_INTEGER < 9999999999999999); // true

    Используйте BigInt
    console.log(9999999999999999n); // 9999999999999999n
    Ответ написан
    1 комментарий
  • Почему JS самостоятельно изменяет числа?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Условно происходит округление.

    На пальцах это выглядит примерно так. В памяти есть место для хранения целого числа, а также есть место для его порядка (степени). Размер первого места задаёт, сколько цифр может быть в числе, например 17 (но это примерно, потому что там биты, то есть число хранится в двоичной системе). Порядок же позволяет дописать очень много нулей к числу справа или слева. Количество нулей тоже не бесконечно, но очень большое, всем хватит.

    Поэтому для очень широких чисел типа такого:
    1230000000000000099999999999999999999999999999999
    невозможно сохранить все цифры в точности. Оно просто не влезает в целую часть. Приходится брать за основу какой-то отрезок из 17 цифр. Очевидно, что логичнее начинать со старших разрядов:
    12300000000000000 (17 цифр)
    Ну а дальше встаёт вопрос, что делать с младшими? Порядок (степень) можно примерно сохранить, дописав нули. И в случае, если отбрасываем .....999999, то логичнее перевести единичку в следующий разряд. Получится:
    1230000000000000100000000000000000000000000000000
    (т.е. 1.2300000000000001e+48)

    Повторюсь, это примерно, без подробностей, для общего понимания. На самом деле там куча нюансов.
    0.1 + 0.2 == 0.3 //false

    Чтобы не вникать в детали и при этом не иметь проблем с вещественными числами вообще, нужно не превышать разрядность целочисленной части и не иметь дело с дробными (т.е. пользоваться, как целыми). И как только эти правила нарушены, гарантия исчезает - и могут появиться погрешности.
    Ответ написан
    4 комментария
  • Почему я не могу присвоить значение св-ву в get?

    Alexandroppolus
    @Alexandroppolus
    кодир
    get() должен не присваивать, а возвращать значение.

    get() {
                    let split = this.fullName.split(' ');
                    return split[0];
                }
    Ответ написан
    Комментировать
  • Почему выдает false?

    Lynn
    @Lynn
    nginx, js, css
    Kerrik Солнце, ну нельзя же настолько не знать (не понимать) язык…

    Вы обращаетесь к переменной constructor. Подозреваю что вы делаете это в консоли браузера и переменную эту никогда не объявляли, поэтому JS выдаст вам свойство constructor глобального объекта. В данном случае это будет window.constructor который конечно же никакого отношения к вашей функции Func не имеет.

    И в любом случае constructor имеет смысл смотреть у экземпляра объекта, а не у класса.

    let f = new Func();
    console.log(f.constructor === Func) // true

    Ответ написан
    Комментировать
  • Объект не может конвертироваться в другой тип данных?

    Kozack
    @Kozack Куратор тега JavaScript
    Thinking about a11y
    String(a) возвращает результат прообразования, но исходный объект остаётся неизменным.

    const strA = String(a)
    typeof strA // string
    Ответ написан
    Комментировать
  • В чем плюсы применения valueOf, toString, Symbol.toPrimitive?

    Lynn
    @Lynn
    nginx, js, css
    Какая-то у вас каша.

    > если можно преобразовать объект в желаемый тип данных легче и проще
    Так эти способы и вызовут неявно те же самые `toString`, `valueOf` и `Symbol.toPrimitive`
    Ответ написан
    4 комментария
  • Почему в этом случае значением для this является window?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Значение this кладётся в свойство ref на момент вызова makeUser. Это простое присвоение простой переменной.

    Чтобы получать актуальный динамически - надо получать актуальный динамически, например:
    function makeUser() {
        return {
            name: "Джон",
            get ref(){
              return this 
            }
        };
    };
    let user = makeUser();
    console.log(user.ref);
    Ответ написан
    2 комментария
  • Почему обтравочная маска удаляет объекты внутри? Как решить эту проблему?

    DarkWood
    @DarkWood
    Хоть вопрос уже и имеет решение, но можно поступить много проще. Вы создаете фигуру обравочной маски на нужном слое (в вашем случае "пейзаж"). Новая фигура по умолчанию будет на самом верху. Ничего не выделяете (а если было выделено, то снимаете выделение) и нажимаете кнопку Make Clipping Mask из выпадающего меню панели слоев. Этой командой из верхнего объекта создается обтравочная маска для всего слоя, которой все равно на порядок расположения подслоев и всего прочего.

    60a2a6ba82848337854535.png
    Ответ написан
    1 комментарий
  • Замыкания. Почему в этом случае удаляется lexical environment родительской функции?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В переменную g у вас записывается ссылка на функцию, которая вернулась из f(). Пока эта ссылка доступна из глобального контекста (через g), функция сохраняется в памяти. Весь контекст, связанный с функцией, также сохраняется, поскольку тоже доступен из глобального контекста (через g и функцию).
    Присваивая переменной null вы, тем самым, делаете функцию и связанный с ней контекст недоступными из глобального контекста. Значит при следующем проходе сборщик мусора удалит их как неиспользуемые.
    Ответ написан
  • Что делает pause on caught exeptions?

    @andreycoder
    frontend и backend Программист
    Ответ написан
    Комментировать
  • В чем отличие инструментов для отладки - step и step into?

    @acwartz
    Тут должна быть ваша реклама.
    Step идет по узлам того же уровня.
    Step into проходит через все дочерние.
    Например:
    Function a;
      Function b;
         Function c;
    Function a2;


    step не будет останавливать дочерние b, c и сразу прыгнет на a2.
    step into зайдет b, если продолжишь делать step into, зайдет в c, и только когда дочерние функции закончатся, прыгнет на a2.
    Ответ написан
    1 комментарий
  • Зачем ставить сразу несколько точек останова?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    >> Зачем тогда некоторые программисты при отладке ставят несколько этих breakpoint'ов?
    Например:
    - чтобы узнать какая функция выполнится раньше
    - убедиться, что программа в эти места не заходит при выполнении
    Вы можете и сами придумать как это использовать. В общем, разрешено все, что не запрещено.
    Ответ написан
    Комментировать
  • Почему window.innerHeight рассчитывает разную высоту окна браузера?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Неправильно понимаете. window.innerHeight возвращает высоту области отображения страницы. Если снизу окна открыта консоль разработчика, то область отображения уменьшается. Увеличиваете размер консоли - уменьшается область отображения - уменьшается значение window.innerHeight.
    Ответ написан
    Комментировать
  • Почему функция не видна за пределами функции?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    В ES5 нельзя было задать блочную область видимости.
    if (true) {
      var foo = 'bar';
    }
    
    console.log(foo); // bar


    В ES6 такая возможность появилась, но не для всех, а только для новых переменных
    if (true) {
      var foo = 'bar';
      let baz = 'biz';
      const alpha = 'beta';
    }
    
    console.log(foo); // bar
    console.log(baz); // ReferenceError: baz is not defined
    console.log(alpha); // ReferenceError: alpha is not defined


    По этому если вы присвоите функцию одной из переменных const/let то вы добьетесь того же эффекта:
    if (true) {
      const foo = () => {};
    }
    
    console.log(foo); // ReferenceError: foo is not defined


    Функциональная область видимости существовала всегда
    function foo () {
      function bar() {}
    }
    
    console.log(bar); // ReferenceError: bar is not defined
    Ответ написан
    Комментировать
  • Может ли стрелочная функция называться функциональным выражением?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Ответ написан
    Комментировать
  • Что такое hoisting javascript?

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

    function func() {
        var i;
        console.log(i); // undefined так как инициализация происходит ниже по коду
        i = 1;
    }


    Отсюда вывод, что объявлять и инициализировать переменные функции нужно в начале функции.
    Ответ написан
    2 комментария