Complat software training 101
  • Introduction
  • Day 1
  • Day 2
  • TODO
  • Linear regression
  • Tmux
  • quick link
  • CLI more - 1
  • Vim more - 1
  • MQ
  • iv - 1
  • iv - 2
  • iv - 3
  • clear Arch
  • lv - array
  • INTERVIEW - JS
  • RDKit - read/write
  • RDKit - process
  • RDKit - transform
  • RDKit - rxn
  • SYSTEM DESIGN - Question
  • SYSTEM DESIGN - EX1
  • SYSTEM DESIGN - EX2
  • SYSTEM DESIGN - EX3
  • SYSTEM DESIGN - EX99
Powered by GitBook
On this page
  • Functional programming
  • Higher-order function (HOF)
  • map is a HOF
  • Middleware
  • Redux-Thunk
  • Webpack
  • Babel

Was this helpful?

INTERVIEW - JS

Functional programming

  1. pass functions as parameters to other functions

  2. immutable, predictable

Higher-order function (HOF)

  1. extendedFunction = HOF(basic function)

  2. parameters share scope

// ES5
function add(x){
  return function(y){
    return y + x;
  };
}

// ES6
const add = x => y => y + x;


// usage
const add2 = add(2);// returns [inner function] where x = 2
add2(4);            // returns 6: exec inner with y = 4, x = 2
add(8)(7);          // 15

map is a HOF

const arr1 = [1, 2, 3];
const arr2 = arr1.map(item => item * 2);
console.log(arr2);

Middleware

  1. HOF

  2. authentication, logging, statistics

redux middleware = 介於dispatch(action) -> reducer之間

var express = require('express')
var app = express()

var myLogger = function (req, res, next) {
  console.log('LOGGED')
  next()
}

app.use(myLogger)

app.get('/', function (req, res) {
  res.send('Hello World!')
})

app.listen(3000)

Redux-Thunk

  1. redux action = return object

  2. thunk action = return function

function createThunkMiddleware(extraArgument) {
  return ({ dispatch, getState }) => next => action => {
    if (typeof action === 'function') {
      return action(dispatch, getState, extraArgument);
    }

    return next(action);
  };
}

const thunk = createThunkMiddleware();
thunk.withExtraArgument = createThunkMiddleware;

export default thunk;

Webpack

Webpack is a build tool that puts all of your assets, including Javascript, images, fonts, and CSS, in a dependency graph.

Babel

turn ES6/7 & JSX to ES5

HOC

Async

Previouslv - arrayNextRDKit - read/write

Last updated 5 years ago

Was this helpful?

https://hackernoon.com/higher-order-function-cheatsheet-es6-javascript-nodejs-react-tutorial-example-d4f3776f4bcd
https://medium.com/@User3141592/understanding-the-redux-thunk-source-code-b3f8b930faf6
https://blog.andrewray.me/webpack-when-to-use-and-why/