babel-node
.editor
- Default args
- Arrow function
- Let - value within block scope
- Template literals
let greet = (greeting, name = "john") =>
console.log(`${greeting} ${name}`);
greet("Heyo", "Mike"); // Heyo Mike
greet("Hiya"); // Hiya john
- Object enhancements
let color = "red";
let speed = 10;
let car = {
color,
speed,
go(){ console.log("vroom") }
}
car.go();
- Classes
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(this.name + ' makes a noise.');
}
}
class Dog extends Animal {
speak() {
console.log(this.name + ' barks.');
}
}
- spread operator - explode array into individual elements
let first = [1, 2, 3]
let second = [4, 5, 6]
first.push(...second)
- destructuring
var { color } = { color: blue }
console.log(color) // blue
class Dog extends Animal
constructor: (@name) ->
speak: ->
console.log(@name + ' barks.')
Javascript Testing
handleMethodSpy = sinon.spy()
link = sinon.stub()
expect(handleMethodSpy).to.have.been.calledWith(link)
querySpy = sinon.spy(Keen, "Query")
querySpy.restore()