TIL:Javascript機能基礎


Function


複数回繰り返し使用できます.

関数宣言

  • onefunction=onething(1つの関数は1つのことしかしないほうがいい)
  • function name(param1,param2){body... return ..}```
  • 関数の名前は動詞です!ex) addItems,createItem ...
  • function is Object!! - 変数はparam
  • として使用可能に割り当てられます.
    function print(){
     return console.log("Hello");
    }
    上の関数は意味のない関数です.同じ値だけが繰り返されるからです.
    fucntion print(message){
      return console.log(message);
    }
    前述したようにparameterで関数を記述するのがもっと一般的です!
  • ですが、jsは関数の戻り値がどのようなタイプなのか分かりません.
  • これらの欠点を克服するために、これからはTypescriptを勉強しなければなりません!ははは(まず...)

    Parameter

  • preetiveパラメータ=値転送
  • objectパラメータ=reference,転送
  • オブジェクトを関数のパラメータとして渡すと、変更値の参照がメモリに格納されます.referenceがその値を指す「アドレス」であるとしましょう.
    function changeName(obj){
      obj.name = 'monkey';
    }
    
    const animal = {name:'bird'};
    changeName(animal);
    
    console.log(animal.name);

    Default Parameter

    function example(name, age = 'unknown'){
      console.log(`${name} +은 ${age}`);
    }
    example('olaf');
  • ES 6で新しく追加された構文です.パラメータ値が入力されていない場合は、デフォルト値を指定できます.
  • olafを入力すると、年齢値は未知の値で出力されます.
  • Rest Parameters

    function printAll(...args){
      for(let i; i<args.length;i--){
        console.log(arg[i]);
    }
      
    printAll('apple','mango','banana');
  • 配列の形で因子を伝達できます!
  • Early return early exit


    良いコードの作成習慣を育成します!
  • 値が定義されていない場合は
  • である.
  • 値falseの場合
  • 値が-1の場合
  • の条件を満たしていない場合は、
  • にすばやく戻ります.
    function badFunction(num){
      if(num.point > 10){
     	// blah blah   
      }
    }
    function goodFunction(num){
      if(num.point <=10){
        return;
      }
       // logic...
    }
     

    function expression


    関数は、前述したように変数として使用するように指定できます.
    const person = function(){
    	console.log('check');
    }
    person(); //변수를 함수처럼 사용 가능!

    関数宣言との違い

    function sum(num1,num2){
     return num1+num2 
    }
    関数宣言
  • 窯方式で吊り下げが発生した.jsエンジンが関数宣言の部分を上に移動するためです.<定義なしで呼び出す>
  • ですが、機能表現は向上しません.
  • Callback function


    関数式では、必要な時点で関数を呼び出すことができます.
    function quize(firstQuize,secondQuize,result){
      if(firstQuize === 'monkey'){
        secondQuize();
      }else{
        result();
      }
    }
    //anonymous function
    const secondQuize = function(){
     console.log('yes') 
    }
    //named function
    const result = function print(){
      console.log('탈락');
    }
    
    quize('monkey',secondQuize, result);
    quize('wrong',secondQuize,result);
  • ネーミング関数を使用する場合は、主にデバッグまたは再帰関数の使用に使用されます.
  • Arrow Fuction


    関数をより簡潔に使用できます.
    const example = function(){
      console.log('숫자출력');
    }
    
    //arrow function으로 변환
    const example = ()=> console.log('숫자출력');
  • 矢印関数は常に匿名関数
  • である.
  • 戻り値でも構いません!
  • const sum = function(a,b){
     return a+b 
    }
    
    // arrow function
    const sum = (a,b)=>a+b;

    IIFE:宣言と同時に呼び出す

    (function hello(){
      console.log('hello');
    })();
    関数全体をバンドル()して使用すると、宣言と同時に呼び出されます!リファレンス