Functions
Can have default parameters, no named parameters when calling though
function scrape(company, secrets, headless=false, toScrape=["All"]) {
//...
}Different ways to call ft change how it interacts with the local scope
Using this
Use the this of the scope that defined it: .bind(this) or store the context var self = this or use arrow its
7 Ways to Define Ft
Ft Declaration
function isEven(num) {
return num % 2 === 0;
}Creates isEven variable in current scope that hold ft obj, hoists ft up, and names it useful for debugging
Need a name for recursion
Arrow Ft
Takes
const absValue = (number) => {
if (number < 0) {
return -number;
}
return number;
}Ft Expression
const isTruthy = function(value) {
return !!value;
};allows conditional setting of variable
Name informed for debugging using variable that holds it
Named Ft Expression
const getType = function funName(variable) {
console.log(typeof funName === 'function'); // => true
return typeof variable;
}Name only available in body, and name set as such
Shorthand method definition
Possible on object literals and classes, required in classes
const collection = {
items: [],
add(...items) {
this.items.push(...items);
},
get(index) {
return this.items[index];
}
};Generator Ft
function* indexGenerator(){
var index = 0;
while(true) {
yield index++;
}
}
const g = indexGenerator();
console.log(g.next().value); // => 0
console.log(g.next().value); // => 1Can also be used with ft expression, and method
const indexGenerator = function* () {
//...
const obj = {
*indexGenerator() {
//...Ft New
This is disgusting don't use, always declared in global scope
const global = new Function('return this')();Last updated