TIL#9 JS) Loops
22515 ワード
複文
For Loops
for([初期文];[条件文];[増減文]){
... 重複テキスト...
}
しょき文章
for([初期文];[条件文];[増減文]){
... 重複テキスト...
}
しょき文章
条件文
let arr = [5, 2, 4, 6];
let arr2 = [];
for (let i=0; i < arr.length ; i++) { // 배열 arr의 길이 = 원소 개수만큼 반복
arr2[i] = arr[i]; // 새로운 배열 arr2에 arr의 원소들을 그대로 붙여넣기
}
console.log(arr2); // [5, 2, 4, 6]
増減式
💡 条件文が成立し,forが1回実行された後,増減式でiを増減する.
ピボット矢印関数(Arrow Function)
矢印関数は関数を簡略化します.矢印関数と通常関数にはメリットがありませんが、状況に応じて必要な構文を選択することがJavaScript関数を使用する最善の方法です.
this
またはsuper
はバインドされておらず、メソッドとして使用できません.*矢印関数がthisを使用している場合は、グローバル変数を指します.
new.target
キーワードなしcall
、apply
およびbind
メソッドは使用できません.생성자(Constructor)
は使用できません.yield
|矢印関数では使用できません.// 매개변수가 없는 일반함수
function fn1() {
return 'Hello world';
}
// 매개변수가 없는 화살표함수
const fn1 = () => 'Hello world';
// 매개변수 1개가 있는 일반함수
function fn2(name) {
return 'Hello ${name}';
}
// 매개변수 1개가 있는 화살표함수
const fn2 = name => 'Hello ${name}';
// 매개변수 2개가 있는 일반함수
function fn2(name1, name2) {
return 'Hello ${name1}, ${name2}';
}
// 매개변수 2개가 있는 화살표함수
const fn2 = (name1, name2) => 'Hello ${name1}, ${name2}';
While Loops
while([条件文]){
...重複テキスト...
}
いくつかの条件文が成立すると、文を実行し続けます.
条件文が偽物であれば、複文の文は実行を停止し、次の文に直接ジャンプします.
条件文は、繰り返し文の文が実行される前に確認されます.
条件文が本当に返されると、文は実行され、条件文は再認識されます.条件文が偽である場合、実行を停止し、while文の後ろの文に移動します.
多くの文を実行するには、{}を使用して囲みます.
n = 0;
x = 0;
while (n < 3) {
n++;
x += n;
}
Do...While
特定の条件を虚偽と判定されるまで繰り返す.
do
文章
while([条件文]);
条件が本当なら、その文章は再実行されます.実行の最後に条件文がチェックされます.
条件文が偽物の場合は、実行を停止しdo...ドアの真下にある文に移動しましょう.
do {
i += 1;
console.log(i);
} while (i < 5);
💡 For Loops VS While Loops
// For Loops
for(var count = 0; count < 6; count++) {
console.log(count);
}
// While Loops
var count = 1;
while(count < 6) {
console.log("count is: " + count);
count++
}
break/continue
break文は、重複文、switch文、ラベル文を組み合わせた文から終了するために使用されます.
for (i = 0; i < a.length; i++) {
if (a[i] == theValue) {
break;
}
}
continue文は、while、do-while、for、およびラベル文の再起動に使用できます.break文とは異なり、continue文はループ全体の実行を終了しません.ループではcontinueが再び条件に移動します.forループではcontinueがインクリメンタル表現に移動します.i = 0;
n = 0;
while (i < 5) {
i++;
if (i == 3) {
continue;
}
n += i;
}
Label
ラベルは、プログラム内で他の場所を参照するために識別子として文を提供します.たとえば、「割り込み」または「継続」文を使用してループを識別し、「割り込み」または「継続」文を使用して、プログラムがループを干渉または継続するかどうかを示すことができます.
EX)タグループはwhileループを識別する.markLoop:
while (theMark == true) {
doSomething();
}
for...in/of
for...in文は、オブジェクトの列挙属性によって指定された変数を繰り返します.JavaScriptは、固有の属性ごとに指定された文を実行します.
for (variable in object) {
statements
}
for...of文はカスタムリピートフックを呼び出し、コマンドによって各一意属性の値を実行し、配列、Map、Set、引数などを含むリピート可能なオブジェクトによってリピートループを作成します.
for (variable of object) {
statement
}
✔️ for practice
Q.helloBotという関数を作成します.
markLoop:
while (theMark == true) {
doSomething();
}
for...in文は、オブジェクトの列挙属性によって指定された変数を繰り返します.JavaScriptは、固有の属性ごとに指定された文を実行します.
for (variable in object) {
statements
}
for...of文はカスタムリピートフックを呼び出し、コマンドによって各一意属性の値を実行し、配列、Map、Set、引数などを含むリピート可能なオブジェクトによってリピートループを作成します.
for (variable of object) {
statement
}
✔️ for practice
Q.helloBotという関数を作成します.
let group1 = [0,1,1,0,0]
helloBot(group1); // --> ['안녕하세요','또 만나네요','또 만나네요','안녕하세요','안녕하세요']
🔥 My Answer
const helloBot = people => {
let result = [];
for(let i = 0; i < group1.length; i++) {
if(group[i] === 0) {
result.push('안녕하세요');
}
else if(group[i] === 1) {
result.push('또 만나네요');
}
}
return result;
}
let group1 = [0, 1, 1, 0, 0];
let welcome = helloBot(group1);
console.log(helloBot());
▶ Feedback🔥 Model Answer
// 초면인 사람은 0, 한 번 이상 본 사람은 1인 group1 배열로 인사봇 만들기
// 화살표함수로 전자는 "안녕하세요", 후자는 "또 만나네요"를 출력하는 배열 반환하기
// 화살표함수
const helloBot = people => { // 배열 group1을 인풋값 명 people로 받음
let result = [];
for(let i = 0; i < people.length; i++) { // 배열 people의 길이만큼 for문 반복
if(people[i] === 0) { // 원소값이 0이라면
result.push('안녕하세요'); // 새로운 배열에 "안녕하세요" 문자열값 추가
}
else if(people[i] === 1) { // 원소값이 1이라면
result.push('또 만나네요'); // 새로운 배열에 "또 만나네요" 문자열값 추가
}
}
return result; // 새로운 배열 반환
}
let group1 = [0, 1, 1, 0, 0];
let welcome = helloBot(group1);
console.log(welcome); // ['안녕하세요','또 만나네요','또 만나네요','안녕하세요','안녕하세요']
Reference
この問題について(TIL#9 JS) Loops), 我々は、より多くの情報をここで見つけました https://velog.io/@threeplef/TIL9-JS-forテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol