どのようにより良い開発者になるJavaScriptを学ぶ.


基本的なビットを準備します.
1 ) let , const , varの違いを見つめます.JavaScriptの変数は何ですか?
let、constはvarがグローバルスコープであるブロックスコープです.
LetとVarは、constがそうすることができないところで再割り当てされることができます.constは、ループ内のカウンタ、またはアルゴリズムにおける値スワップなど、変数が再割り当てされ得る信号である.let変数は、その範囲内で更新されて、再宣言されることができます.
変数は次の2種類です.

Local scope- Local variables have Function scope. They can only be accessed from within the function.
Global scope-A global variable has global scope. All scripts and functions on a web page can access it.


2 ) JavaScriptで関数を書く方法
JavaScript関数は、関数のキーワードで定義されており、名前の後に括弧()

by using function key word say


function sayHello(){console.log("hi")};sayHello();

by useing fat arrow function also called arrow function like:


const sayHello =()=>{console.log("hi")}; sayHello(); 
JavaScriptのジェネレータは何ですか?
function *宣言はジェネレータ関数を定義します.
ライク
function* generatorSum(i){
      yield i;
      yield i+10
};
const gen = generatorSum(10);

console.log(gen.next().value);
// expected output: 10
ジェネレータオブジェクトはジェネレータ関数によって返され、イテレータプロトコルとイテレータプロトコルの両方に準拠します.
3 ) JavaScriptの巻上げのコンセプト
Hoistingは、変数が現在のスコープの先頭に移動するプロパティです.宣言のみが初期化されていないことに注意してください.
4 ) Javascriptにおけるクロージャの概念
クローズは親スコープが閉じられた後でさえ親スコープへのアクセスを持つ関数です.
function closureExample(i){
 return function cloureInnerVariable(y){
        return i+y;
 }
}
const value1=closureExample(1);
const value2=value1(2);
console.log("value of closure",value2);
5 ) JavaScriptで何が起こっているか
閉鎖に似ています.Curryingはf(a、b、c)をf(a)(b)(c)としてcallableにする変換です.
ライク
function curringExample(w) {
  return function(h) {
    return function(l) {
      return w * h* l;
    }
  }
}

curringExample(4)(6)(3); // 72
JavaScriptのプロトタイプは何ですか?
Ant :継承になると、JavaScriptには、1つのコンストラクタがあります.各オブジェクトは、そのプロトタイプと呼ばれる別のオブジェクトへのリンクを保持するプライベートプロパティを持っています.そのプロトタイプオブジェクトはそれ自身のプロトタイプを持っています、そして、オブジェクトがそのプロトタイプとしてNULLで届くまで.クラスまたは関数を使用できます.
ライク
  function Animal (name, energy) {
    this.name = name
    this.energy = energy
  }

Animal.prototype.eat = function (amount) {
  console.log(`${this.name} is eating.`)
  this.energy += amount
}
or by using the extent keyword in class.
7 ) JavaScriptでの残りの演算子

A function can be called with any number of arguments, no matter how it is defined. It is called Rest operators.
Like:


function sumAll(...args) { // args is the name for the array
  let sum = 0;

  for (let arg of args) sum += arg;

  return sum;
}

alert( sumAll(1) ); // 1
alert( sumAll(1, 2) ); // 3
alert( sumAll(1, 2, 3) ); // 6

Spread syntax to the rescue! It looks similar to rest parameters, also using ..., but does quite the opposite.


let arr = [3, 5, 1];
When ...arr is used in the function call, it “expands” an iterable object arr into the list of arguments.
let arr = [3, 5, 1];

alert( Math.max(...arr) ); // 5 (spread turns array into a list of arguments)
8 ) JavaScriptの破壊
Deploturing Assignment SyntaxはJavaScript式で、配列からの値、またはオブジェクトからのプロパティを、例えば
Array :
let a, b, rest;
[a, b] = [10, 20];

console.log(a);
// expected output: 10

console.log(b);
// expected output: 20

[a, b, ...rest] = [10, 20, 30, 40, 50];

console.log(rest);
// expected output: Array [30,40,50]
Object 
const {a = 10, b = 5} = {a: 3};

console.log(a); // 3
console.log(b); // 5
9 ) JavaScriptでの約束?
JavaScriptでの約束は、既に起こっているプロセスを表します.
基本的に、約束は単なるasync操作の成功か、async操作の失敗を私たちに与えるだけです
1
var promise = new Promise(function(resolve, reject) {
  // do some long-running async thing…

  if (/* everything turned out fine */) {
    resolve("Stuff worked!");
  }
  else {
    reject(Error("It broke"));
  }
});

//usage
promise.then(
  function(result) { /* handle a successful result */ },
  function(error) { /* handle an error */ }
);
10 ) JavaScriptのコールバック?
コールバックは他の関数への引数として渡される関数です.
function greeting(name) {
  alert('Hello ' + name);
}

function processUserInput(callback) {
  var name = prompt('Please enter your name.');
  callback(name);
}

processUserInput(greeting);
11 ) JavaScriptのコールバック地獄?
約束は、任意の非同期関数から返されるオブジェクトです.使用を約束する.これは複雑な入れ子になったコールバックによるコーディングによって引き起こされる大きな問題です.ここで、それぞれのコールバックは前のコールバックの結果である引数を受け取ります.このようにして、コード構造はピラミッドのように見え、読みや維持が困難になる.また、1つの関数にエラーがある場合、他のすべての関数が影響を受けます.
TRUEまたはイベントキューを使用してコールバックヘルを避けるために.
12 ) JavaScriptでコーディング規約に従ってください.
などの適切なドキュメントを使用することによって

https://developers.google.com/apps-script/guides/sheets/functions
Name variable with a meaningful name. Use camel case All names start with a letter.
try to use higher-order function instead of a long function.Higher-order functions are functions that operate on other functions, either by taking them as arguments or by returning them.
Use of local scope and global scope should be taken care of when you are declaring a variable.
Use of proper documentation is important to understand the flow of a developer .Use proper comment in code if are using any function.
Code is the story with lots of operation and information about what you are doing.
It is better you understand the way of logic you are using as a developer.


読んで、より良い開発者になるために私を理解してくれてありがとう.
カウスタフカルマカー