100 lines
1.5 KiB
JavaScript
100 lines
1.5 KiB
JavaScript
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
|
var obj = {};
|
|
var foo = "foo";
|
|
var bar = "bar";
|
|
|
|
// constants
|
|
const MULTIPLIER = 5;
|
|
|
|
// classes
|
|
class Foo {
|
|
constructor() {
|
|
this.foo = "bar";
|
|
}
|
|
}
|
|
|
|
class Bar extends Foo {
|
|
constructor() {
|
|
super();
|
|
}
|
|
|
|
// default parameters
|
|
go(foo = "bar", bar = "foo") {
|
|
|
|
}
|
|
|
|
// not supported by jstransform
|
|
//get foo() {
|
|
// return this._foo;
|
|
//}
|
|
//set foo(val) {
|
|
// this._foo = val + " foo!";
|
|
//}
|
|
}
|
|
|
|
// arrow functions
|
|
arr.map(x => x * x);
|
|
|
|
// block binding
|
|
for (let key in arr) {
|
|
let val = arr[key];
|
|
console.log(key, val);
|
|
}
|
|
|
|
// computed property names
|
|
obj = {
|
|
["foo" + bar]: "foobar"
|
|
};
|
|
|
|
// destructuring
|
|
var [a, [b], c, d] = ["hello", [", ", "junk"], ["world"]];
|
|
console.log(a + b + c);
|
|
|
|
// array comprehension
|
|
// [for (i of [1, 2, 3]) i * i]; // not supported by es6now
|
|
|
|
// for-of
|
|
for (var i of [1, 2, 3]) {
|
|
console.log(i * i);
|
|
}
|
|
|
|
// property method assignment
|
|
obj = {
|
|
foo() {
|
|
return "foobar";
|
|
},
|
|
|
|
get bar() {
|
|
return this._bar;
|
|
},
|
|
|
|
set bar(val) {
|
|
this._bar = val;
|
|
}
|
|
};
|
|
|
|
// property name shorthand
|
|
function f(x, y) {
|
|
return { x, y };
|
|
}
|
|
|
|
// rest parameters
|
|
function printList(name, ...items) {
|
|
console.log("list %s has the following items", name);
|
|
items.forEach(function (item) {
|
|
console.log(item);
|
|
});
|
|
}
|
|
|
|
// spread
|
|
function add(x, y) {
|
|
return x + y;
|
|
}
|
|
var numbers = [5, 10];
|
|
add(...numbers);
|
|
|
|
// template literals
|
|
var x = 5;
|
|
var y = 10;
|
|
console.log(`${x} + ${y} = ${x + y}`);
|