JavaScript의 `FileList` 객체는 `input` 요소에서 선택된 파일 목록을 나타내는데 사용됩니다. `FileList` 객체는 다음과 같은 속성과 메서드를 제공합니다:

1. `length`: 선택된 파일의 개수를 반환합니다.
2. `item(index)`: 주어진 인덱스에 해당하는 파일을 반환합니다.
3. `namedItem(name)`: 주어진 파일 이름에 해당하는 파일을 반환합니다.
4. `[index]`: 인덱스를 사용하여 파일에 접근할 수 있습니다. (`fileList[index]` 형태로 사용)
5. `entries()`: `FileList` 객체의 각 파일에 대한 반복자(iterator)를 반환합니다.
6. `forEach(callback)`: `FileList` 객체의 각 파일에 대해 콜백 함수를 실행합니다.
7. `item(index)`: 주어진 인덱스에 해당하는 파일을 반환합니다.
8. `keys()`: `FileList` 객체의 파일 인덱스에 대한 반복자(iterator)를 반환합니다.
9. `values()`: `FileList` 객체의 파일들에 대한 값 반복자(iterator)를 반환합니다.

주의할 점은 `FileList` 객체는 배열이 아니기 때문에 일반적인 배열 메서드를 직접 사용할 수 없습니다. 하지만 `Array.from(fileList)`과 같이 `Array.from()` 메서드를 사용하여 `FileList` 객체를 배열로 변환한 후에는 배열 메서드를 사용할 수 있습니다.

예를 들어, 아래의 코드는 `FileList` 객체를 배열로 변환한 후 `forEach()` 메서드를 사용하여 각 파일의 이름을 출력합니다:

```javascript
var fileInput = document.getElementById('myFileInput');
var files = Array.from(fileInput.files);

files.forEach(function(file) {
  console.log(file.name);
});
```

위의 예시에서 `fileInput.files`는 `FileList` 객체를 반환하고, `Array.from(fileInput.files)`를 사용하여 `FileList` 객체를 배열로 변환하였습니다. 그리고 `forEach()` 메서드를 사용하여 각 파일의 이름을 출력하였습니다.

+ Recent posts