지도
VAR의 도착 = 123456789 ]; VAR = s의 선택 arrmap (에 문자열); console.info (들) 함수 POW (X) { 창 X * X; } VAR의 결과 = arr.map (POW); console.info (결과);
CONST 도착 = [1,2,3,4,5,6,7,8,9 ]; CONST 도착 = arr.map (문자열); CONSOLE.LOG (S); CONST 결과 = arr.map (X => X * X); CONSOLE.LOG (결과)
// (9)가 "1", "2", "3", "4", "5", "6", "7", "8", "9"] // (9) (1) 4, 9, 16, 25, 36, 49, 64, 81]
줄이다
이 함수는, 파라미터를 접수하더라도 감소 ()를 이용하여 측정하고 그 결과는 어큐뮬레이터로서 산출되는 시퀀스의 다음 요소를 계속해야
VAR의 FUNC = 함수 (X, Y) { 창 X + Y; } 했다 도착 = 1,3,5,7,9 ]; 된 결과 =는 (FUNC)를 arr.reduce; CONSOLE.LOG (결과)
CONST 도착 = 1,3,5,7,9 ];
CONST 결과 =는 arr.reduce ((X, Y) => X + Y)
// 결과는 25
필터
그리고지도 (), 필터 () 함수의 리턴 값에 기초하여, 순차적으로 각 소자에인가되는 다른 전달 요소를 유지하거나 폐기 참 또는 거짓 인 결정
VAR의 도착 = 1,2,4,5,6,9,10,15 ]; VAR R = arr.filter ( 함수 (X) { 창 X % 2 == 0! ; }) CONSOLE.LOG (R);
CONST 도착 = 1,2,4,5,6,9,10,15 ]; CONST R = arr.filter (X => X % 2 == 0! ); CONSOLE.LOG (R);
// (4) [1, 5, 9, 15]
필터는 사실, 여러 매개 변수를 가질 수 있습니다, 콜백 함수를 사용할 수 있습니다. 보통 우리는 배열의 요소를 나타내는 첫 번째 매개 변수를 사용합니다. 콜백 함수는 두 개의 다른 변수를 수용하고, 소자 어레이 자체의 위치를 나타내는 수
VAR의 도착 = 'A', 'B', 'C' ]; VAR R = arr.filter ( 기능 (요소 인덱스 자체) { CONSOLE.LOG (요소); // 'A', 'B', 'C' CONSOLE.LOG (인덱스); // 0 ,. 1, 2 CONSOLE.LOG (자기) // 자기 가변 ARR의 인 창 true로 ; }); CONSOLE.LOG (R);
/ * ㅏ 0
[ "A", "B", "C"] 비 1
[ "A", "B", "C"] 씨 2
[ "A", "B", "C"]
[ "A", "B", "C"] * /
종류
기본적으로 배열 정렬 () 메소드는 모든 요소는 첫 번째 문자열 재정렬 결과 '10'로 변환하기 때문에, 앞서 '2'의 때문에 ASCII 코드의 문자 '2'가 아닌 '1'자 작.
했다 도착 = 10,20,1,2 ]; arr.sort ( 함수 (X, Y) { 경우 (X <Y) { 창 -1 } 경우 (X> Y) { 창 1 } 반환 0 ; }); CONSOLE.LOG (편곡)
했다 도착 = 10,20,1,2 ]; arr.sort ((X, Y) => x> Y 1, X <Y -1 : 0? ); CONSOLE.LOG (도착);
// [1,2,10,20]
종류 () 배열의 방법은이 결과는 여전히 현재의 배열입니다 반환, 직접 수정할 수 있습니다
VAR의 A1 = "B", "A", "C" ]; VAR A2 = a1.sort (); A1; // [ "A", "B", "C"]; A2; // [ "A", "B", "C"]; === A1 A2; // 사실 A1和A2是同一个对象
화살표 기능
이 화살표로 정의되어있는 이유는 화살표 기능이라고?
X => X * X;
상기 함수는 화살표에 해당
함수 (X) { 창 X * X; }
우리는이를 사용할 수 있습니다
// 두 개의 파라미터 : (X, Y) => X + Y * X * Y // 매개 변수 없습니다 () => 3.14
// 可变参数: (X, Y, ... 나머지) => { VAR I, 합계 = X + Y; 대 (나는 <rest.length; 나는 0 = I ++ ) { 합계 + = 나머지 [I] } 반환 합; }
당신은 객체를 반환하려면
X => ({foo는 : X})
속기 익명 함수를 할 기능이 나타납니다 화살표 있지만, 사실, 기능, 익명 함수가 명확한 구분이 화살표 다음은 어휘 범위가 문맥에 의해 결정된다 화살표 안쪽에이 기능이 있습니다.
이 OBJ = { 출생 : 1990 , getAge : 함수 () { VAR의 B는 = 이 .birth 단계; // 1990 VAR FN = 함수 () { 반환 새로운 날짜 ()하여 getFullYear ()를 -. 이 .birth을; // 이指向창或정의되지 }; 반환 ) (FN; } }; 했다 K = obj.getAge () console.info (오른쪽) // NaN의
이 OBJ = { 출생 : 1990 , getAge : 함수 () { VAR의 B는 = 이 .birth 단계; // 1990 년 var에 FN = () => 새로운 날짜 ()하여 getFullYear () -. 이 .birth; // 이指向OBJ对象 반환 ) (FN; } }; 했다 K = obj.getAge는 (); console.info (오른쪽) // (28)
클래스 상속
클래스 학생 { 생성자 (이름) { 이 .name을 = 이름; } 여보세요() { 을 console.log ( '안녕하세요'+ 이 .name을 + '!' ) } } var xiaoming = new Student ( '소명' ); xiaoming.hello (); 클래스 PrimaryStudent는 학생을 {확장 생성자 (이름, 학년) { 슈퍼 (이름); //이 슈퍼와 부모 클래스의 생성자를 호출하는 것을 잊지 은이 .grade = 학년; } myGrade () { CONSOLE.LOG ( + 'I 학년에서 나는' 이 .grade) } } VAR xiaohua는 = 새로운 새 PrimaryStudent ( 'Xiaohua', 1 ); xiaohua.hello (); xiaohua.myGrade (); // 여보세요, 밥! // 여보세요, Xiaohua! // 는 I AM AT 1 급
수율
함수 *의 피보나치 () { 수득 1 ; 수득 2 ; 반환 2 ; } VAR 은 = 피보나치 () · · · CONSOLE.LOG (IT); // "발전기 {}" 을 console.log (it.next ()); // 1 CONSOLE.LOG (it.next ()); // 2 CONSOLE.LOG (it.next ()); // 정의되지 않은 VAR ITT = 피보나치 (); // 및 반환 값을 위해 ... 루프, 확장이 이송되지 Itrrator이어야한다 위해 ( VAR ITT의 당) { CONSOLE.LOG (PER); } // 피보나치 {<중단은>} // {값 : 1, 다 : 거짓} // {값 : 2 일 : 거짓} // {값 : 2, 다 : 사실은} // 1 // 2
함수 *의 foo는 () { 수득 0 ; 수득 1 ; } 함수 *의 바 () { 수득 'X' ; 수득 * ) (foo는; 수득 'y'를 ; } 에 대한 {(() 표시 줄의 V하자) CONSOLE.LOG (V); } // X // 0 // 1 // 및