Твой родной язык javascript что ли
Перейти к содержимому

Твой родной язык javascript что ли

  • автор:

Ivan 10:26 pm у тебя было яблоко, тебе дали еще одно сколько у тебя яблок? Konstantin 10:26 pm о / javascript :: языки программирования :: переписка

Ivan 10:26 pm у тебя было яблоко, тебе дали еще одно сколько у тебя яблок? Konstantin 10:26 pm одно яблоко потому что яблоко + одно = одно яблоко Ivan 10:28 pm твой родной язык это джаваскрипт что ли сука,переписка,javascript,языки программирования

Подробнее
Ivan 10:26 pm у тебя было яблоко, тебе дали еще одно сколько у тебя яблок? Konstantin 10:26 pm одно яблоко потому что яблоко + одно = одно яблоко Ivan 10:28 pm твой родной язык это джаваскрипт что ли сука
переписка,javascript,языки программирования

Твой родной язык javascript что ли

1+1 будет 2. А вот "1" + "1" = "11", как и в любом другом языке.

Та бля, это устная шутка

Потому что в комнате душно��

Автоматическое приведение типов делает брррр.

Ясное дело, что при сложение строки и числа менее ресурсоемко превратить число в строку.

я ищо знаю прекс праграмистский ахах
мосив наченается с нуляXD рекурсияXDDDDDD

А почему он начинается с нуля знаешь, стажер? Кстати, в каких языках он начинается с нуля?

да я ебу что ли, срезы типа чтоб хз и в си-подобных точно, не учился даже на курсах так-то

Хера ты умный, уже лучше чем чуваки с курсов. А почему нельзя читать текст из файла в языках с неизменяемыми строками при помощи конкатенации и построчного чтения?

Твой родной язык джаваскрипт что-ли сука

300кк в наносекунду?

Шутка про кривое приведение типов в JS, что не соответствует действительности, т.к. любое сложение строк работает во всех ЯП одинаково.

При этом я понимаю над чем пытались пошутить. Иногда JS действительно автоматически приводит цифру в строки. Сколько на JS писал — случаи скорее единичные.

В остальном баян и не смешно. На ту же тему есть короткометражка на ютубе:
https://www.youtube.com/watch?v=WNo-0HYN3eY
Вот там смешно.

Просто в JS "догадались" объединить конкатенацию и сложение одним оператором(чувствуется влияние старого доброго Perl), отсюда некоторое недопонимание от приведения типов. Например в Lua ошибку допустить невозможно, там конкатенация это две точки.

Там нет никакого недопонимая приведения типов. Функция возвращает значение конкретного типа. Если на vanilla JS писать — вообще проблем нет. А то что jQuery вернул число строкой — так это проблемы программистов jQ, а не языка. Плюсом удобно и понятно строки соединять, что сделано во многих ЯП на самом деле.

(чувствуется влияние старого доброго Perl),

Вы что-то путаете. Через точки — это как раз Perl- образные языки, в т.ч. и PHP. Но там одной точкой это делается.

Lua ошибку допустить невозможно, там конкатенация это две точки.

Писать два символа вместо одного и радоваться как гениально всё сделали. Ну не знаю. Я бы это назвал "двойной работой" =)

Что такое «родной JavaScript»?

Есть ли что-нибудь под названием «Нативный JavaScript»? Я видел этот термин в описании должностных обязанностей. Я собираюсь провести собеседование.

Является ли обычный JavaScript тем же, что и родной JavaScript?

9 ответов

Термин «native» очень сильно используется в JavaScript.

Вкратце, он используется как в ответе Йохана: нет JQuery, Moo, Dojo.

Аналогично JNI для Java, Google GWT и аналогичным I-compile-down-to-JavaScript говорят о том, что базовая реализация является родной.

Исходное использование native в JS, я считаю, относится к объектам, построенным и определенным в ECMAScript, в отличие от среды. JavaScript, как язык ECMAScript, не предназначен для самодостаточности; он встроен в среду хоста, такую ​​как веб-браузер, Photoshop, Acroread и т.д. Когда вы пишете программу веб-клиента, вы будете использовать такие объекты, как Math , Function , Array , Window и Button . Первые три являются native (независимо от среды хоста), в то время как последние два не являются родными (предоставляются хост-средой). Это своего рода противоположность ответа cdhowie, который является хорошим ответом BTW. Просто интересно, хотя!

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

Вот официальное определение из стандарта ECMAScript-262, пятое издание:

Другими словами, встроенные элементы типа Math , Object , String , RegExp являются родными, как и любые объекты, которые я создаю с помощью литералов объектов или определений функций. Но объекты-хосты противоположны. Извините за бегство.

Введение в JavaScript

Давайте посмотрим, что такого особенного в JavaScript, чего можно достичь с его помощью и какие другие технологии хорошо с ним работают.

Что такое JavaScript?

Изначально JavaScript был создан, чтобы «сделать веб-страницы живыми».

Программы на этом языке называются скриптами. Они могут встраиваться в HTML и выполняться автоматически при загрузке веб-страницы.

Скрипты распространяются и выполняются, как простой текст. Им не нужна специальная подготовка или компиляция для запуска.

Это отличает JavaScript от другого языка – Java.

Когда JavaScript создавался, у него было другое имя – «LiveScript». Однако, язык Java был очень популярен в то время, и было решено, что позиционирование JavaScript как «младшего брата» Java будет полезно.

Со временем JavaScript стал полностью независимым языком со своей собственной спецификацией, называющейся ECMAScript, и сейчас не имеет никакого отношения к Java.

Сегодня JavaScript может выполняться не только в браузере, но и на сервере или на любом другом устройстве, которое имеет специальную программу, называющуюся «движком» JavaScript.

У браузера есть собственный движок, который иногда называют «виртуальная машина JavaScript».

Разные движки имеют разные «кодовые имена». Например:

    – в Chrome, Opera и Edge. – в Firefox.
  • …Ещё есть «Chakra» для IE, «JavaScriptCore», «Nitro» и «SquirrelFish» для Safari и т.д.

Эти названия полезно знать, так как они часто используются в статьях для разработчиков. Мы тоже будем их использовать. Например, если «функциональность X поддерживается V8», тогда «Х», скорее всего, работает в Chrome, Opera и Edge.

Движки сложны. Но основы понять легко.

  1. Движок (встроенный, если это браузер) читает («парсит») текст скрипта.
  2. Затем он преобразует («компилирует») скрипт в машинный язык.
  3. После этого машинный код запускается и работает достаточно быстро.

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

Что может JavaScript в браузере?

Современный JavaScript – это «безопасный» язык программирования. Он не предоставляет низкоуровневый доступ к памяти или процессору, потому что изначально был создан для браузеров, не требующих этого.

Возможности JavaScript сильно зависят от окружения, в котором он работает. Например, Node.JS поддерживает функции чтения/записи произвольных файлов, выполнения сетевых запросов и т.д.

В браузере для JavaScript доступно всё, что связано с манипулированием веб-страницами, взаимодействием с пользователем и веб-сервером.

Например, в браузере JavaScript может:

  • Добавлять новый HTML-код на страницу, изменять существующее содержимое, модифицировать стили.
  • Реагировать на действия пользователя, щелчки мыши, перемещения указателя, нажатия клавиш.
  • Отправлять сетевые запросы на удалённые сервера, скачивать и загружать файлы (технологии AJAX и COMET).
  • Получать и устанавливать куки, задавать вопросы посетителю, показывать сообщения.
  • Запоминать данные на стороне клиента («local storage»).

Чего НЕ может JavaScript в браузере?

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

Примеры таких ограничений включают в себя:

JavaScript на веб-странице не может читать/записывать произвольные файлы на жёстком диске, копировать их или запускать программы. Он не имеет прямого доступа к системным функциям ОС.

Современные браузеры позволяют ему работать с файлами, но с ограниченным доступом, и предоставляют его, только если пользователь выполняет определённые действия, такие как «перетаскивание» файла в окно браузера или его выбор с помощью тега <input> .

Существуют способы взаимодействия с камерой/микрофоном и другими устройствами, но они требуют явного разрешения пользователя. Таким образом, страница с поддержкой JavaScript не может незаметно включить веб-камеру, наблюдать за происходящим и отправлять информацию в ФСБ.

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

Это называется «Политика одинакового источника» (Same Origin Policy). Чтобы обойти это ограничение, обе страницы должны согласиться с этим и содержать JavaScript-код, который специальным образом обменивается данными.

Это ограничение необходимо, опять же, для безопасности пользователя. Страница https://anysite.com , которую открыл пользователь, не должна иметь доступ к другой вкладке браузера с URL https://gmail.com и воровать информацию оттуда.

JavaScript может легко взаимодействовать с сервером, с которого пришла текущая страница. Но его способность получать данные с других сайтов/доменов ограничена. Хотя это возможно в принципе, для чего требуется явное согласие (выраженное в заголовках HTTP) с удалённой стороной. Опять же, это ограничение безопасности.

Подобные ограничения не действуют, если JavaScript используется вне браузера, например — на сервере. Современные браузеры предоставляют плагины/расширения, с помощью которых можно запрашивать дополнительные разрешения.

Что делает JavaScript особенным?

Как минимум, три сильные стороны JavaScript:

  • Полная интеграция с HTML/CSS.
  • Простые вещи делаются просто.
  • Поддерживается всеми основными браузерами и включён по умолчанию.

JavaScript – это единственная браузерная технология, сочетающая в себе все эти три вещи.

Вот что делает JavaScript особенным. Вот почему это самый распространённый инструмент для создания интерфейсов в браузере.

Хотя, конечно, JavaScript позволяет делать приложения не только в браузерах, но и на сервере, на мобильных устройствах и т.п.

Языки «над» JavaScript

Синтаксис JavaScript подходит не под все нужды. Разные люди хотят иметь разные возможности.

Это естественно, потому что проекты разные и требования к ним тоже разные.

Так, в последнее время появилось много новых языков, которые транспилируются (конвертируются) в JavaScript, прежде чем запустятся в браузере.

Современные инструменты делают транспиляцию очень быстрой и прозрачной, фактически позволяя разработчикам писать код на другом языке, автоматически преобразуя его в JavaScript «под капотом».

Примеры таких языков:

    добавляет «синтаксический сахар» для JavaScript. Он вводит более короткий синтаксис, который позволяет писать чистый и лаконичный код. Обычно такое нравится Ruby-программистам. концентрируется на добавлении «строгой типизации» для упрощения разработки и поддержки больших и сложных систем. Разработан Microsoft. тоже добавляет типизацию, но иначе. Разработан Facebook. стоит особняком, потому что имеет собственный движок, работающий вне браузера (например, в мобильных приложениях). Первоначально был предложен Google, как замена JavaScript, но на данный момент необходима его транспиляция для запуска так же, как для вышеперечисленных языков. транспилирует Python в JavaScript, что позволяет писать приложения на чистом Python без JavaScript.

Есть и другие. Но даже если мы используем один из этих языков, мы должны знать JavaScript, чтобы действительно понимать, что мы делаем.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *