async,wait,複数の繰り返し文
async/await
Promiseが使いにくい場合は、ES 8文法の方が使いやすいです.
重複文の用途(for、foreachを含む)
1.単純重複コード
2.資料型資料を選ぶ場合
for in
オブジェクトに使用します.
1.実値のみ(可数を示す)を出力し、falseの場合はフィルタします.
array、文字、arguments、NoteList、Map、Setに使用します.
1.正確には、Iterableの資料型にのみ適用されます.
iterable-Symbol.iteratorとは、1つの方法を有する資料型を指す.
document.getElementsByClassName()またはdocument.querySelector All()コレクタで検索された要素は、配列ではなく[]カッコに含まれ、NodeListと呼ばれます.
HTML要素を1つずつ取り出して処理する場合、非常によく使われる重複文と考えられます.(ただしforの互換性注意)
例1.九九九九九
tip
最初から繰り返し文に慣れていなければ、ハードコーディングをあげましょう.そしてそれを繰り返し文にするとずっと簡単になります.
Promiseが使いにくい場合は、ES 8文法の方が使いやすいです.
async function 더하기(){ // 그냥 간단하게 함수앞에 async만 붙이면 된다.
var 어려운연산 = new Promise((성공, 실패)=>{
실패();
});
try { var 결과 = await 어려운연산 } //await은 무조건 async 함수 내부에서 사용해야 한다.
catch { 어려운연산 Promise가 실패할 경우 실행할 코드 } //실패할 경우를 대비해, catch문 이용
}
더하기() //함수 호출
例1.async、待機路<button>을 누르면 성공하는 Promise 만들기
<body>
<button id="test">버튼</button>
</body>
<script>
var 프로미스 = new Promise(function(성공, 실패){ //버튼을 클릭하면 성공으로
document.getElementById('test').addEventListener('click', function(){
성공('성공했어요');
});
})
async function 버튼누르기(){ //함수에 async 사용
try{
var 결과 = await 프로미스; //프로미스로 넘어가서 await으로 기다려준다.
console.log(결과); //성공했어요 출력
} catch { console.log('실패했어요'); } //실패했을 경우
}
버튼누르기(); //함수 호출
</script>
for in/for of重複文の用途(for、foreachを含む)
1.単純重複コード
2.資料型資料を選ぶ場合
for in
オブジェクトに使用します.
var 오브젝트 = { name : 'Kim', age : 30 };
for (var key in 오브젝트) { //내부 데이터 갯수만큼, 반복할 때마다 key라는 변수는 name, age이다.
console.log(오브젝트[key]); //key를 []에 넣어서 사용, key를 이렇게 .점 찍고는 사용을 못한다.
}
inフィーチャー1.実値のみ(可数を示す)を出力し、falseの場合はフィルタします.
var 오브젝트 = { name : 'Kim' }; //{ name : 'Kim' } 이걸 저장하면 Kim 이라는 자료만 달랑 저장되는게 아니라, Kim과 함께 비밀스러운 속성들 3개가 true로 저장된다.
console.log( Object.getOwnPropertyDescriptor(오브젝트, 'name') ); //{value: "Kim", writable: true, enumerable: true, configurable: true} 출력
2.親の原型に保存されているものも出力されます.これは欠点です.class 부모 {
}
부모.prototype.name = 'Park';
var 오브젝트 = new 부모();
for (var key in 오브젝트) {
if (오브젝트.hasOwnProperty(key)) // Park이 싫다면, 오브젝트가 이 key값을 직접 가지고 있냐라고 조건문을 단다. 그래서 오브젝트가 가진 것만 반복시키고 싶으면 이걸 꼭 써야한다.
console.log(오브젝트[key]); //Park을 출력하지 않는다. 부모만 가지고 있고 오브젝트는 없기때문이다.
}
for ofarray、文字、arguments、NoteList、Map、Setに使用します.
var 어레이 = [2,3,4,5];
for (var 자료 of 어레이) {
console.log(자료);
}
とくせい1.正確には、Iterableの資料型にのみ適用されます.
iterable-Symbol.iteratorとは、1つの方法を有する資料型を指す.
var 어레이 = [2,3,4,5];
console.log( 어레이[Symbol.iterator]() ); // 깊게 이해는 하지말고, 이걸 가지고 있으면 for of 반복문을 쓸 수 있구나~라고 알고 있자.
2.使用するNoteListdocument.getElementsByClassName()またはdocument.querySelector All()コレクタで検索された要素は、配列ではなく[]カッコに含まれ、NodeListと呼ばれます.
HTML要素を1つずつ取り出して処理する場合、非常によく使われる重複文と考えられます.(ただしforの互換性注意)
例1.九九九九九
let 데이터 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for (let 자료1 of 데이터) {
for (let 자료2 of 데이터) {
console.log(`${자료1}*${자료2} = ${자료1*자료2}`) //1*1 = 1 부터 9*9 = 81까지 출력
}
}
例2.鍵の最後の数字を削除tip
最初から繰り返し文に慣れていなければ、ハードコーディングをあげましょう.そしてそれを繰り返し文にするとずっと簡単になります.
var products = [{
name1: 'chair',
price1: 7000
},
{
name2: 'sofa',
price: 5000
},
{
name1: 'desk',
price3: 9000
},
];
for (let array of products) // array라서 for of
for (let key in array) { // object라서 for in
let value = array[key]; //일단 데이터 값을 따로 저장하고
newKey = key.slice(0, -1); //기존 key의 마지막 숫자를 떼버린다.
array[newKey] = value; //새로운 key에 데이터 다시 저장
delete array[key] //기존 key들은 없앤다.
}
console.log(products)
Reference
この問題について(async,wait,複数の繰り返し文), 我々は、より多くの情報をここで見つけました https://velog.io/@qk1890/async-await-여러-for반복문テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol