Day 61:)関数のタイプ、文字列、配列


関数のタイプ
関数宣言(一般的な関数)
function 함수명(){}
  • の関数名
  • は省略できません.
  • 宣言前コールで
  • を実行
    <script>
    	fn();
        
        function fn(){
        	alert("Hello, world");
        }
    </script>
    関数式(匿名関数)
    var 변수명 = function(){}
  • 関数を再使用しない場合は、
  • を使用します.
  • を使用して、不確定な関数名の匿名関数を変数
  • に代入する.
  • 無条件宣言後のコールは
  • を実行できます.
    <script>
        var fn = function(){
        			alert("Hello, world");
        		};
        
        fn();
    </script>
  • 最初に呼び出すと、変数に関数が含まれる前に、定義されていない値
  • が表示されます.
    重ね合わせ関数
    function outer(){
    
    	function inner(){
    	}
    	inner();
    };
  • 関数で宣言された関数
  • 内部で定義された機能は、外部に露出することなく、特定の関数に使用することができる
    function addSquares(a,b) {
    
      function square(x) {
        return x * x;
      }
      
      return square(a) + square(b);
    };
    
    a = addSquares(2,3); // returns 13
    b = addSquares(3,4); // returns 25
    c = addSquares(4,5); // returns 41
    コールバック関数
    function 함수이름(callback){
    	...
    	callback(결과);
    };
  • 関数をパラメータとして伝達する関数
  • 関数の内部処理結果値を関数外部に導出場合は
  • を用いる.
    function 계산기(num1, num2, type){
    	if (type=='더하기'){
    		console.log("결과",num1+num2);
    	} else if (type=='곱하기'){
    		console.log("결과", num1*num2);
    	}
    }
    	
    계산기(10,20, '더하기');	// 출력값 30
    계산기(10,20, '곱하기');	// 출력값 200
    パラメータ
  • 匿名関数として
  • を受け入れることもできる.
    function 계산기2(num1, num2, fn){
    	fn(num1, num2);
    }
        
    계산기2(100,200, function(a,b){
    	console.log(a*b);
    }) 
    // 출력값 20000
    インスタント実行関数
    (function 함수명(){})();
  • 関数(定義後)をかっこで囲み、
  • を直ちに呼び出す.
  • を省略可能な関数名
  • (function (x) { 
    	console.log(x+x); 
    })(3);
    // 출력값 6
  • 変数宣言後、
  • を再呼び出すことができます.
    (a = function(x){
    	console.log(x*x);
      	})(2);	// 출력값 4
    a(3)		// 출력값 9
    矢印関数
    1. 매개변수가 없을 때
    var 변수 = () => 수행문
    
    2. 매개변수가 하나만 있을 때
    var 변수 = 매개변수 => 수행문
    var 변수 = (매개변수) => 수행문
    
    3. 매개변수, 수행문이 복수일 때
    var 변수 = (매개변수, 매개변수, 매개변수) => 수행문
    var 변수 = (매개변수, 매개변수, 매개변수) => { 수행문; 수행문; }
    var 변수 = (매개변수, 매개변수, 매개변수) => { 수행문; return 수행문; }
    // 중괄호 사용 시 return으로 결과값 반환해야함
  • 矢印関数は常に匿名
  • です.
  • 関数が1つの場所でのみ使用され、伝達されるコードが簡単である場合、
  • が推奨される.
    let sum = (a, b) => { 
      let result = a + b;
      return result;
    };
  • は、3つの演算子とともに
  • を使用することができる.
    let age = prompt("나이를 알려주세요.", 18);
    
    let welcome = (age < 18) ?
      () => alert('안녕') :
      () => alert("안녕하세요!");
    
    welcome();
    文字列
  • 声明
  • var a = 'a';
    var b = "b";
    宣言
  • Stringグローバルオブジェクト
  • var c = String(c); // 'c'
    メイン番組
  • length:文字列長
  • を返します.
    var str1 = "안녕하세요";
    console.log(str1.length);
    // 출력값 5
    主な方法
  • split(セパレータ):文字列をセパレータで区切って配列に入れ、
  • を返します.
    var str2 = "자바!파이썬!자바스크립트!C";
    var languages = str2.split("!");
    // languages = ["자바","파이썬","자바스크립트","C"];
    console.log(languages[0],languages[1],languages[2],languages[3]);
    // 출력값: 자바  파이썬  자바스크립트  C
  • 置換(文字、置換文字):文字を置換文字に変更する
  • var str3 = "흰 옷과 흰 스니커즈를 신고 흰색 시계를 찬 사람";
    console.log(str3.replace("흰","검은"));
    // 첫번째 문자만 변경 됨
    // 검은 옷과 흰 스니커즈를 신고 흰색 시계를 찬 사람
    console.log(str3.replace(/흰/g,"검은"));
    // 모든 문자가 변경됨
    // 검은 옷과 검은 스니커즈를 신고 검은 시계를 찬 사람
  • substr(start,length):startから文字列
  • を返す
  • サブ文字列(start,end):開始から終了までの戻り文字列(endは終了位置-1値)
  • は、スペース
  • を含む
  • 0から
  • var str4 = "나는 안녕합니다."
    console.log(str4.substr(3,2));		// 안녕
    console.log(str4.substring(3,5));	// 안녕
    整列
  • JavaScriptの配列は可変
  • である.
    保証する
    var arr = ["사과","오렌지","포도"];
  • length:タイル長
  • を返します.
    console.log(arr.length);
    // 출력값: 3
    方法
    push(値)
  • アレイの末尾に新しい値
  • を追加
    arr.push("파인애플")
    // ["사과","오렌지","포도", "파인애플"]
    pop()
  • 配列の最後の値を削除し、
  • を返します.
    arr.pop();
    // 파인애플
    arr
    // 파인애플이 삭제되었으므로 ["사과","오렌지","포도"] 반환
    shift()
  • 配列の初期値を削除し、
  • を返します.
    arr.shift();
    // 사과
    arr
    // 사과가 삭제되었으므로 [오렌지","포도"] 반환
    unshift(値)
  • 配列の先頭に新しい値
  • を追加
    arr.unshift("키위")
    // ["키위","오렌지","포도"]
    splice(インデックス、複数[、値])
    指定された場所を削除または追加するための値
  • index:値を削除または追加する場所(1から)
  • を指定します.
  • multi:削除する数を指定します.0入力時に
  • を削除しない
  • 値:追加する値を指定します.スキップ時に削除できるのは
  • のみです.
    arr.splice(2,2);
    // 2번째 자리에서부터 2개가 삭제됨 -> 오렌지, 포도 삭제
    // ["키위"]
    arr.splice(1,1,"바나나");
    // 첫번째 자리에있는 키위를 삭제하고 바나나를 추가
    // ["바나나"]
    arr.splice(1,0,"망고");
    // 첫번째 자리에 망고 추가.
    // ["망고","바나나"]
    join(接続する文字列)
  • はすべての配列を接続し、1つの文字列
  • を形成する.
    arr.join();
    // 망고, 바나나
    arr.join('');
    // 망고바나나
    arr.join(' 그리고 ');
    // 망고 그리고 바나나
    forEach()
  • で指定した関数を配列数で実行します.アレイでのみ使用可能な
  • var foods = ["피자","햄버거","바게트"];
    
    1. for문으로 표현하기
    for(var b in array1){
    	console.log(array1[b]);
    }
    /*
    * 피자
    * 햄버거
    * 바게트
    */
    
    2. forEach문으로 표현하기
    2-1. 요소 나열하기
    foods.forEach(function(item){
    	console.log(item);
    });
    /*
    * 피자
    * 햄버거
    * 바게트
    */
    
    2-2. 요소와 index 나열하기
    foods.forEach(function(item, index){
    	console.log(item, index);
    });
    /* 
    * 피자 0
    * 햄버거 1
    * 바게트 2
    */
    
    2-3. 화살표 함수로 표현하기
    foods.forEach((item, index) => console.log(item, index));
    filter()
  • 指定された関数の配列数を実行し、返される値はtrueのみです.
    var universe = ["지구","달","블랙홀","태양계","은하계","별"];
    
    universe.filter(function(name, index){
    	return name.length == 3;
    })
    // 글자수가 3개인 단어 반환
    // ["블랙홀","태양계","은하계"]
    
    화살표함수 이용하기
    universe.filter(name=>name.length==1);
    // ["달","별"]
    Map()
    배열.map(function(요소, 인덱스){ return 요소.배열key })
  • JSのMAPはJAVAのHashMapと似たようなデータ構造を持っている:
  • 指定関数の戻り値を含む新しい配列
  • を作成します.
    - 자바스크립트의 객체(key:value 쌍)
    	var data = [
    		{name:"홍길동", kor:100, eng:70, math:70},
    		{name:"김유신", kor:50, eng:60, math:55},
    		{name:"강감찬", kor:70, eng:50, math:40},
    		{name:"이순신", kor:80, eng:70, math:76},
    		{name:"유관순", kor:100, eng:80, math:80}	
    		];
    - Map을 이용해 새로운 배열 생성
    1. 단일 값을 가진 배열
    	var names = data.map(function(student, index){
    		return student.name;
    	});
    	console.log("학생이름", names);
    // data의 map속성으로 student라는 새로운 함수 생성 후 name만 반환하여 names에 저장
    
    	console.log("학생이름", names);
    2. 다중 값을 가진 배열
    	var scores = data.map(function(student){
        	name: student.name,
            total: student.kor + student.eng + student.math,
            average: (student.kor + student.eng + student.math)/3,
        })
    	console.log("성적",scores)

    reduce()
    배열.reduce(function(total, value){ return total + value; })
    
    * total: 초기값은 0이며, return값이 전달됨
    * value: 배열의 요소가 한개씩 들어감
  • は各要素を処理し、戻り値を
  • とする.
    var arr = [1,2,3,4,5]
    var total = arr.reduce(total, value){
    	return total+value;
    }
    console.log(total) // 출력값: 15
    
    0+1
    1+2
    3+3
    6+4
    10+5
    reduce関数の複数の使い方:https://blog.naver.com/wideeyed/221877924629