Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.12.2015, 20:57
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

Unusual JavaScript
Привет! У меня появилась и постепенно реализуется идея создания задачника по JavaScript. Он будет включать задания вроде:
  • "Найдите значение выражения",
    1 + 2 + "3";
    
  • "True или False?",
    new Array([],null,undefined,null) == ",,,"; // будет true)
    
  • "Что выведет код?",
    function b(x, y, a) {
        	arguments[2] = 10;
        	alert(a);
        }
        b(1, 2, 3);
    
  • "Найдите ошибку"
    <script src="file.js">
      alert(1); 
    </script>
    
И много других(касаемо работы с функциями, прототипного наследования).
При этом задания будут группироваться по степени сложности - чем ближе к концу, тем сложнее.
Определенному блоку заданий в конце раздела будет соответствовать поясняющая теория.

Я хочу сделать дополнительный раздел "Необычный JavaScript" - в нём будут размещены примеры "странного поведения" JavaScript. Конечно, понятие "странное поведение" весьма условно. Но это будут примеры сложной, неочевидной логики языка и читающим будет очень полезно для обучения разобрать их.

Буду очень признателен Вам, если поделитесь случаями "исключительного" поведения языка из своей практики или хитрыми примерами на понимание языка.
Ответить с цитированием
  #2 (permalink)  
Старый 29.12.2015, 23:10
Аспирант
Посмотреть профиль Найти все сообщения от callbackhell
 
Регистрация: 29.12.2015
Сообщений: 58

Сообщение от Coriolan161
Буду очень признателен Вам, если поделитесь случаями "исключительного" поведения языка
Ты имеешь в виду wtf'ки?

первое что на ум приходит -- это е*тая 2-х проходная компиляция
if(false) function x (){a = 1}
x()
alert(a)

Причем в разных движках это работает со своими ньюансами. Одна из причин забыть о function declarations

Последний раз редактировалось callbackhell, 29.12.2015 в 23:13.
Ответить с цитированием
  #3 (permalink)  
Старый 29.12.2015, 23:17
Аспирант
Посмотреть профиль Найти все сообщения от callbackhell
 
Регистрация: 29.12.2015
Сообщений: 58

>>хитрыми примерами на понимание языка.
Вот на этом примере 90% разрабов ложается
with({a: 1}) a = 2, b = 3
alert([window.a, window.b])
Ответить с цитированием
  #4 (permalink)  
Старый 29.12.2015, 23:32
Аспирант
Посмотреть профиль Найти все сообщения от callbackhell
 
Регистрация: 29.12.2015
Сообщений: 58

Вот еще тебе wtf, с ES6
new Promise(function(){}).then(function(){throw "err"})
setTimeout(function(){alert("no Error:)")}, 1000)
Ответить с цитированием
  #5 (permalink)  
Старый 29.12.2015, 23:46
Аспирант
Посмотреть профиль Найти все сообщения от callbackhell
 
Регистрация: 29.12.2015
Сообщений: 58

На приведении типов можно здорово обосраться
if("" == 0) alert("'' == 0")
if("0" == 0) alert("'0' == 0")
if("00" == 0) alert("'00' == 0")
if("\t" == 0) alert("\t == 0" )
Ответить с цитированием
  #6 (permalink)  
Старый 30.12.2015, 03:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Coriolan161,
Вопросы на собеседованиях
Ответить с цитированием
  #7 (permalink)  
Старый 30.12.2015, 08:56
Аватар для vasa_c
Профессор
Отправить личное сообщение для vasa_c Посмотреть профиль Найти все сообщения от vasa_c
 
Регистрация: 12.03.2008
Сообщений: 183

Цитата:
У меня появилась и постепенно реализуется идея создания задачника по JavaScript
Подобная идея ни разу не оригинальна.
Таких "задачников" существует более чем нужно.

Только знание наизусть подобной чепухи никак не кореллирует со знанием чего-то полезного.
Ответить с цитированием
  #8 (permalink)  
Старый 30.12.2015, 14:56
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от vasa_c
Только знание наизусть подобной чепухи никак не кореллирует со знанием чего-то полезного.
именно
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #9 (permalink)  
Старый 09.02.2016, 18:09
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

vasa_c,
1)
Цитата:
Подобная идея ни разу не оригинальна.
И что? Меня это никогда не останавливало.
Более того, многие мастистые товарищи пишут книги, несмотря на то, что полно написанного и неопубликованного до них. Кошмар, они не оригинальны! Я не понимаю твоей 'оригинальной' логики.

2)
Цитата:
Таких "задачников" существует более чем нужно.
И что? По-моему, здесь выбор за мной. Никто не запретит мне излагать своё виденье и что-то создавать. Друг ( не дай Бог конечно), не оценивай по первому впечатлению и не лепи кавычки.

3)
Цитата:
Только знание наизусть подобной чепухи
Ты по этой и более серьёзной чепухе учил язык, умник! Если нет (а…ты же 'оригинальный'), то изложи свой взгляд на подходы к начальному пониманию идеологии языка

К слову_1: существует множество веб-приложений с довольно похожим функционалом. Тем не менее, их продолжают создавать (с отличиями в User Interface). Нарисована куча картин и живописей - всё хорош! Нет, продолжают рисовать. И так далее.

К слову_2: Пойми, что мир не оригинален. Всё, что называется 'новым', есть суть обновленные старые идеи. Если тебе в голову пришла какая-то мысль, то это не значит, что она не пришла некоторому множеству других людей.
Например, у меня так было с LESS. Я некоторые свои мысли встретил в его функционале при знакомстве. В частности, примеси и &.

К слову_3: ты, наверно, и сам осознаешь 'ребячество' своих слов
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книга: JavaScript. Сильные стороны Magneto Учебные материалы 16 21.04.2013 15:28
Интерпретатор Java на JS kobezzza Оффтопик 24 11.10.2012 18:32
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 15:23
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34