PV247 ECMAScript ECMAScript: A language standardized by ECMA International. JavaScript: The commonly used name for implementations of the ECMAScript standard. ECMAScript 5 (ES5): The 5th edition of ECMAScript, standardized in 2009. This standard has been implemented fairly completely in all modern browsers ECMAScript 6 (ES6)/ ECMAScript 2015 (ES2015): The 6th edition of ECMAScript, standardized in 2015. This standard has been partially implemented in most modern browsers. To see the state of implementation by different browsers and tools, check out these compatibility tables. ECMAScript 7 / 2016 ECMAScript 8 / 2017 PV247 Polyfills & transpiling “A polyfill, or polyfiller, is a piece of code (or plugin) that provides the technology that you, the developer, expect the browser to provide natively. Flattening the API landscape if you will.” https://remysharp.com/2010/10/08/what-is-a-polyfill “A transpiler takes the syntax that older browsers won’t understand (e.g. classes, ‘const’, arrow functions), and turns them into syntax they will understand (functions, ‘var’, functions).” https://hackernoon.com/polyfills-everything-you-ever-wanted-to-know-or-maybe-a-bit-less- 7c8de164e423 PV247 ES6 new features • Constants, let • Default arguments • String interpolation • Property shorthands • Spread operators • Object & array destructuring • Arrow functions (lambda expressions) • Promises • Classes & class inheritance All features - http://es6-features.org https://egghead.io/courses/learn-es6-ecmascript-2015 PV247 Modules PV247 • JavaScript Modules refer to a small units of independent, reusable code • They seems to mimic how classes are used in Java or Python. https://medium.com/sungthecoder/javascript-module-module-loader-module-bundler-es6-module- confused-yet-6343510e7bde PV247 https://webpack.js.org/concepts/ PV247 • npm init • npm install • npm run … https://docs.npmjs.com/getting-started/what-is-npm Maintainable code Code analysis A linter or lint refers to tools that analyze source code to flag programming errors, bugs, stylistic errors, and suspicious constructs. • Eslint, JSLint, JSHint Lack of static typing Static typed languages are those in which type checking is done at compile-time, whereas dynamic typed languages are those in which type checking is done at run-time. • Typescript, Flow PV247 Maintainable styles BEM Methodology that helps you to create reusable components. Core concept is to create the styles for components based on Block (standalone meaningful entity), Element (part semantically tied to its block), Modifier (appearance or behavior flag). LESS Backwards-compatible language extension for CSS. LESS looks just like CSS, it only makes a few convenient additions. Among them are variables, nesting, operations, functions and much more. • {less} PV247 PV247 https://github.com/facebook/create-react-app