JS 튜토리얼

제이에스 홈 JS 소개 JS 어디로 JS 출력 JS 문 JS 구문 JS 코멘트 JS 변수 제이에스렛 JS 상수 JS 연산자 JS 산술 JS 할당 JS 데이터 유형 JS 함수 JS 객체 JS 이벤트 JS 문자열 JS 문자열 메서드 JS 문자열 검색 JS 문자열 템플릿 JS 번호 JS 숫자 메서드 JS 배열 JS 배열 메서드 JS 배열 정렬 JS 배열 반복 JS 배열 상수 JS 날짜 JS 날짜 형식 JS 날짜 가져오기 메서드 JS 날짜 설정 방법 JS 수학 JS 랜덤 JS 부울 JS 비교 JS 조건 JS 스위치 JS 루프 In에 대한 JS 루프 의 JS 루프 JS 루프 동안 JS 브레이크 JS 이터러블 JS 세트 JS 맵 JS 유형 JS 유형 변환 JS 비트와이즈 JS 정규 표현식 JS 오류 JS 범위 JS 호이스팅 JS 엄격 모드 JS 이 키워드 JS 화살표 함수 JS 클래스 JS JSON JS 디버깅 JS 스타일 가이드 JS 모범 사례 JS 실수 JS 성능 JS 예약어

JS 버전

JS 버전 JS 2009(ES5) JS 2015(ES6) JS 2016 JS 2017 JS 2018 JS IE / 엣지 JS 연혁

JS 객체

객체 정의 개체 속성 개체 메서드 개체 표시 개체 접근자 객체 생성자 개체 프로토타입 객체 반복 가능 객체 세트 객체 맵 개체 참조

JS 함수

기능 정의 기능 매개변수 함수 호출 함수 호출 기능 적용 함수 클로저

JS 클래스

수업 소개 클래스 상속 클래스 정적

JS 비동기

JS 콜백 JS 비동기 JS 약속 JS 비동기/대기

JS HTML DOM

DOM 소개 DOM 메서드 DOM 문서 DOM 요소 DOM HTML DOM 양식 DOM CSS DOM 애니메이션 DOM 이벤트 DOM 이벤트 리스너 DOM 탐색 DOM 노드 DOM 컬렉션 DOM 노드 목록

JS 브라우저 BOM

JS 창 JS 화면 JS 위치 JS 연혁 JS 네비게이터 JS 팝업 경고 JS 타이밍 JS 쿠키

JS 웹 API

웹 API 소개 웹 양식 API 웹 기록 API 웹 스토리지 API 웹 작업자 API 웹 가져오기 API 웹 지리적 위치 API

JS 아약스

AJAX 소개 AJAX XMLHttp AJAX 요청 AJAX 응답 AJAX XML 파일 AJAX PHP AJAX ASP AJAX 데이터베이스 AJAX 애플리케이션 AJAX 예제

JS JSON

JSON 소개 JSON 구문 JSON 대 XML JSON 데이터 유형 JSON 구문 분석 JSON 문자열화 JSON 객체 JSON 배열 JSON 서버 JSON PHP JSON HTML JSON JSONP

JS 대 jQuery

jQuery 선택기 제이쿼리 HTML 제이쿼리 CSS 제이쿼리 DOM

JS 그래픽

JS 그래픽 JS 캔버스 JS 플로틀리 JS 차트.js JS 구글 차트 JS D3.js

JS 예제

JS 예제 JS HTML DOM JS HTML 입력 JS HTML 객체 JS HTML 이벤트 JS 브라우저 JS 편집기 JS 연습 JS 퀴즈 JS 인증서

JS 참조

자바스크립트 객체 HTML DOM 객체


자바스크립트 ES5

ES5라고도 알려진 ECMAScript 2009는 JavaScript의 첫 번째 주요 개정판입니다.

이 장에서는 ES5의 가장 중요한 기능에 대해 설명합니다.

ES5 기능


브라우저 지원

ES5모든 최신 브라우저에서 완벽하게 지원됩니다.

Chrome IE Edge Firefox Safari Opera
Yes 9.0 Yes Yes Yes Yes

"엄격한 사용" 지침

"use strict"JavaScript 코드가 "엄격한 모드"에서 실행되어야 함을 정의합니다.

예를 들어 엄격 모드에서는 선언되지 않은 변수를 사용할 수 없습니다.

모든 프로그램에서 엄격 모드를 사용할 수 있습니다. 선언되지 않은 변수를 사용하지 못하도록 하는 것과 같이 보다 깔끔한 코드를 작성하는 데 도움이 됩니다.

"use strict"는 단지 문자열 표현식입니다. 오래된 브라우저는 이해하지 못한다면 오류를 던지지 않을 것입니다.

JS Strict Mode 에서 더 읽어보세요 .


문자열에 대한 속성 액세스

charAt()메서드는 문자열의 지정된 인덱스(위치)에 있는 문자를 반환합니다.

예시

var str = "HELLO WORLD";
str.charAt(0);            // returns H

ES5는 문자열에 대한 속성 액세스를 허용합니다.

예시

var str = "HELLO WORLD";
str[0];                   // returns H

문자열에 대한 속성 액세스는 약간 예측할 수 없습니다.

JS String Methods 에서 더 읽어보세요 .


여러 줄에 걸친 문자열

ES5는 백슬래시로 이스케이프된 경우 여러 줄에 대한 문자열 리터럴을 허용합니다.

예시

"Hello \
Dolly!";

\ 메소드는 보편적인 지원을 하지 않을 수 있습니다.
이전 브라우저는 백슬래시 주변의 공백을 다르게 처리할 수 있습니다.
일부 구형 브라우저는 \ 문자 뒤에 공백을 허용하지 않습니다.

문자열 리터럴을 분리하는 더 안전한 방법은 문자열 추가를 사용하는 것입니다.

예시

"Hello " +
"Dolly!";

속성 이름으로 예약어

ES5는 예약어를 속성 이름으로 허용합니다.

개체 예

var obj = {name: "John", new: "yes"}

문자열 다듬기()

trim()메서드는 문자열의 양쪽에서 공백을 제거합니다.

예시

var str = "       Hello World!        ";
alert(str.trim());

JS String Methods 에서 더 읽어보세요 .



Array.isArray()

isArray()메서드는 개체가 배열인지 확인합니다.

예시

function myFunction() {
  var fruits = ["Banana", "Orange", "Apple", "Mango"];
  var x = document.getElementById("demo");
  x.innerHTML = Array.isArray(fruits);
}

JS 배열 에서 더 읽어보세요 .


forEach() 배열

forEach()메서드는 각 배열 요소에 대해 한 번씩 함수를 호출합니다.

예시

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);

function myFunction(value) {
  txt = txt + value + "<br>";
}

JS 배열 반복 방법 에서 자세히 알아보세요 .


배열 맵()

이 예에서는 각 배열 값에 2를 곱합니다.

예시

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);

function myFunction(value) {
  return value * 2;
}

JS 배열 반복 방법 에서 자세히 알아보세요 .


배열 필터()

이 예에서는 18보다 큰 값을 가진 요소에서 새 배열을 만듭니다.

예시

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);

function myFunction(value) {
  return value > 18;
}

JS 배열 반복 방법 에서 자세히 알아보세요 .


배열 축소()

이 예에서는 배열에 있는 모든 숫자의 합을 찾습니다.

예시

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction);

function myFunction(total, value) {
  return total + value;
}

JS 배열 반복 방법 에서 자세히 알아보세요 .


배열 reduceRight()

이 예에서는 배열에 있는 모든 숫자의 합도 찾습니다.

예시

var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);

function myFunction(total, value) {
  return total + value;
}

JS 배열 반복 방법 에서 자세히 알아보세요 .


배열마다()

이 예에서는 모든 값이 18을 초과하는지 확인합니다.

예시

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);

function myFunction(value) {
  return value > 18;
}

JS 배열 반복 방법 에서 자세히 알아보세요 .


배열 some()

이 예에서는 일부 값이 18을 초과하는지 확인합니다.

예시

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.some(myFunction);

function myFunction(value) {
  return value > 18;
}

JS 배열 반복 방법 에서 자세히 알아보세요 .


배열 indexOf()

배열에서 요소 값을 검색하고 해당 위치를 반환합니다.

예시

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");

JS 배열 반복 방법 에서 자세히 알아보세요 .


배열 lastIndexOf()

lastIndexOf()indexOf()같지만 배열의 끝에서 검색합니다.

예시

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");

JS 배열 반복 방법 에서 자세히 알아보세요 .


JSON.parse()

JSON의 일반적인 용도는 웹 서버에서 데이터를 수신하는 것입니다.

웹 서버에서 다음 텍스트 문자열을 받았다고 상상해 보십시오.

'{"name":"John", "age":30, "city":"New York"}'

JavaScript 함수 JSON.parse()는 텍스트를 JavaScript 객체로 변환하는 데 사용됩니다.

var obj = JSON.parse('{"name":"John", "age":30, "city":"New York"}');

JSON 튜토리얼 에서 더 읽어보세요 .


JSON.stringify()

JSON의 일반적인 용도는 웹 서버에 데이터를 보내는 것입니다.

웹 서버에 데이터를 보낼 때 데이터는 문자열이어야 합니다.

JavaScript에 이 객체가 있다고 상상해보십시오.

var obj = {name:"John", age:30, city:"New York"};

JavaScript 함수 JSON.stringify()를 사용하여 문자열로 변환합니다.

var myJSON = JSON.stringify(obj);

결과는 JSON 표기법을 따르는 문자열입니다.

myJSON은 이제 문자열이며 서버로 보낼 준비가 되었습니다.

예시

var obj = {name:"John", age:30, city:"New York"};
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;

JSON 튜토리얼 에서 더 읽어보세요 .


날짜.지금()

Date.now() returns the number of milliseconds since zero date (January 1. 1970 00:00:00 UTC).

Example

var timInMSs = Date.now();

Date.now() returns the same as getTime() performed on a Date object.

Learn more in JS Dates.


Date toISOString()

The toISOString() method converts a Date object to a string, using the ISO standard format:

Example

const d = new Date();
document.getElementById("demo").innerHTML = d.toISOString();

Date toJSON()

toJSON() converts a Date object into a string, formatted as a JSON date.

JSON dates have the same format as the ISO-8601 standard: YYYY-MM-DDTHH:mm:ss.sssZ:

Example

d = new Date();
document.getElementById("demo").innerHTML = d.toJSON();

Property Getters and Setters

ES5 lets you define object methods with a syntax that looks like getting or setting a property.

This example creates a getter for a property called fullName:

Example

// Create an object:
var person = {
  firstName: "John",
  lastName : "Doe",
  get fullName() {
    return this.firstName + " " + this.lastName;
  }
};

// Display data from the object using a getter:
document.getElementById("demo").innerHTML = person.fullName;

This example creates a setter and a getter for the language property:

Example

var person = {
  firstName: "John",
  lastName : "Doe",
  language : "NO",
  get lang() {
    return this.language;
  },
  set lang(value) {
    this.language = value;
  }
};

// Set an object property using a setter:
person.lang = "en";

// Display data from the object using a getter:
document.getElementById("demo").innerHTML = person.lang;

This example uses a setter to secure upper case updates of language:

Example

var person = {
  firstName: "John",
  lastName : "Doe",
  language : "NO",
  set lang(value) {
    this.language = value.toUpperCase();
  }
};

// Set an object property using a setter:
person.lang = "en";

// Display data from the object:
document.getElementById("demo").innerHTML = person.language;

Learn more about Gettes and Setters in JS Object Accessors


Object.defineProperty()

Object.defineProperty() is a new Object method in ES5.

It lets you define an object property and/or change a property's value and/or metadata.

Example

// Create an Object:
var person = {
  firstName: "John",
  lastName : "Doe",
  language : "NO",
};

// Change a Property:
Object.defineProperty(person, "language", {
  value: "EN",
  writable : true,
  enumerable : true,
  configurable : true
});

// Enumerate Properties
var txt = "";
for (var x in person) {
  txt += person[x] + "<br>";
}
document.getElementById("demo").innerHTML = txt;

Next example is the same code, except it hides the language property from enumeration:

Example

// Create an Object:
var person = {
  firstName: "John",
  lastName : "Doe",
  language : "NO",
};

// Change a Property:
Object.defineProperty(person, "language", {
  value: "EN",
  writable : true,
  enumerable : false,
  configurable : true
});

// Enumerate Properties
var txt = "";
for (var x in person) {
  txt += person[x] + "<br>";
}
document.getElementById("demo").innerHTML = txt;

This example creates a setter and a getter to secure upper case updates of language:

Example

/// Create an Object:
var person = {
  firstName: "John",
  lastName : "Doe",
  language : "NO"
};

// Change a Property:
Object.defineProperty(person, "language", {
  get : function() { return language },
  set : function(value) { language = value.toUpperCase()}
});

// Change Language
person.language = "en";

// Display Language
document.getElementById("demo").innerHTML = person.language;

E5 Object Methods

ES5 added a lot of new Object Methods to JavaScript:

Managing Objects

// Create object with an existing object as prototype
Object.create(parent, donor)

// Adding or changing an object property
Object.defineProperty(object, property, descriptor)

// Adding or changing object properties
Object.defineProperties(object, descriptors)

// Accessing Properties
Object.getOwnPropertyDescriptor(object, property)

// Returns all properties as an array
Object.getOwnPropertyNames(object)

// Accessing the prototype
Object.getPrototypeOf(object)

// Returns enumerable properties as an array
Object.keys(object)

Protecting Objects

// Prevents adding properties to an object
Object.preventExtensions(object)

// Returns true if properties can be added to an object
Object.isExtensible(object)

// Prevents changes of object properties (not values)
Object.seal(object)

// Returns true if object is sealed
Object.isSealed(object)

// Prevents any changes to an object
Object.freeze(object)

// Returns true if object is frozen
Object.isFrozen(object)

Learn more in Object ECMAScript5.


Trailing Commas

ES5 allows trailing commas in object and array definitions:

Object Example

person = {
  firstName: "John",
  lastName: " Doe",
  age: 46,
}

Array Example

points = [
  1,
  5,
  10,
  25,
  40,
  100,
];

WARNING !!!

JSON does not allow trailing commas.

JSON Objects:

// Allowed:
var person = '{"firstName":"John", "lastName":"Doe", "age":46}'
JSON.parse(person)

// Not allowed:
var person = '{"firstName":"John", "lastName":"Doe", "age":46,}'
JSON.parse(person)

JSON Arrays:

// Allowed:
points = [40, 100, 1, 5, 25, 10]

// Not allowed:
points = [40, 100, 1, 5, 25, 10,]