Пропустить теорию и перейти прямо к задачам
Ссылка на учебник: http://learn.javascript.ru
Сразу расскажу про несколько особенностей яваскрипта, о которых может быть не написано (или мало написано) в учебниках, но которые стоит понимать:
| import getLastResolvedPromise from './getLastResolvedPromise' | |
| const promise1 = Promise.resolve(3); | |
| const promise2 = new Promise(function(resolve, reject) { | |
| setTimeout(resolve, 200, 'foo'); | |
| }); | |
| const promise3 = new Promise(function(resolve, reject) { | |
| setTimeout(resolve, 100, 'bar'); | |
| }); |
Пропустить теорию и перейти прямо к задачам
Ссылка на учебник: http://learn.javascript.ru
Сразу расскажу про несколько особенностей яваскрипта, о которых может быть не написано (или мало написано) в учебниках, но которые стоит понимать:
| const curry = ( | |
| f, arr = [] | |
| ) => (...args) => ( | |
| a => a.length === f.length ? | |
| f(...a) : | |
| curry(f, a) | |
| )([...arr, ...args]); |
| module Main exposing (..) | |
| import Collage exposing (Form, collage, filled, move, rect) | |
| import Color exposing (Color, rgb) | |
| import Element exposing (toHtml) | |
| import Html exposing (Html) | |
| import Keyboard | |
| import Mouse | |
| import Random | |
| import Time exposing (Time, millisecond) |
| -- Tuple | |
| ("oh", ("my", (42, "god"))) -- touch the God | |
| (("Hello", 100), ("World", 200)) -- need "Hello World 300" | |
| ((((((("Boom has been planted"))))))) -- tuple? | |
| -- Record | |
| myRecord = |
| import Html exposing (Html) | |
| import Time exposing (Time, second) | |
| main = | |
| Html.program | |
| { init = init | |
| , view = view | |
| , update = update | |
| , subscriptions = subscriptions |
| module Main exposing (..) | |
| import Html exposing (..) | |
| import Html.Events exposing (..) | |
| import Random | |
| main = | |
| Html.program | |
| { init = init |
| module.exports = { | |
| createArray: (begin, end) => { | |
| const result = [] | |
| for (let i = begin; i<end+1; i++){ | |
| result.push(i) | |
| } | |
| return result | |
| }, | |
| fromRoman: (_str) => { | |
| var str = _str.toString() |
| function mapValues(obj, fn) { | |
| return Object.keys(obj).reduce((result, key) => { | |
| result[key] = fn(obj[key], key); | |
| return result; | |
| }, {}); | |
| } | |
| function pick(obj, fn) { | |
| return Object.keys(obj).reduce((result, key) => { | |
| if (fn(obj[key])) { |
Official learning
3rd Party