생성자 함수 일반적으로 객체 리터럴 {...}을 통해 객체를 생성하지만, 유사한 객체를 여러 개 생성해야 할 때 new 연산자와 생성자 함수를 사용.
생성자 함수의 선언은 일반 함수와 큰 차이가 없지만 두 가지 관례를 따름.
함수 이름의 첫 글자는 대문자로 시작. 반드시 new연산자를 붙여 실행. function User(name, sex, age) { this.name = name; this.sex = sex; this.age = age; this.isAdmin = false; } let user = new User('John', 'M', '21'); alert(user.
More
객체 프로퍼티 객체의 프로퍼티는 두 가지로 분류된다.
데이터 프로퍼티 : 키와 값으로 분류된 일반적인 프로퍼티. 접근자 프로퍼티 : 자체적으로 값을 가지지 않고, 다른 데이터 프로퍼티의 값에 접근할 때 호출되는 접근자 함수(set, get)으로 구성된 프로퍼티 데이터 프로퍼티 데이터 프로퍼티는 값(value)과 함께 특별한 세 가지의 속성(플래그, flag)을 가짐.
writable : 값 수정 enumerable : 반복을 통한 나열 configurable : 프로퍼티 삭제 또는 플래그 수정 일반적인 선언(지금까지 하던 객체 프로퍼티 선언)으로는 기본값인 true로 설정됨.
More
객체 선언 const obj = new Object() const obj = {} 두 방법에 큰 차이는 없으나 객체 리터럴 방법(2번째)이 가독성과 성능 등의 이유로 권장됨
프로퍼티 생성 const person = { name: 'kim', age: 25, } // 선언 시 입력 person.bloodtype = 'A' // 동적 선언 프로퍼티의 값으로는 어떤 자료형이든 가능
const person ={ name: 'kim', age: 25, live: true, friends: ['song', 'ho', 'kang'], say: function(word) { alert(`${this.name}: ${word}`) } } 프로퍼티 접근 const person = { name: 'kim', age: 25, } person.
More
이항 연산자 연산자 설명 예시 + 덧셈 연산자 2 + 3 - 뺄셈 연산자 7 - 2 * 곱셈 연산자 5 * 1 / 나눗셈 연산자 35 / 7 % 나머지 연산자 41 % 6 ** 제곱 연산자 3 ** 2 단항 연산자 연산자 설명 예시 + 단항 덧셈 연산자 +2
More
원시형 숫자형 (2^53-1)부터 -(2^53-1)사이의 정수와 부동소수점 방식으로 표현된 실수
const int = 3; // 정수 선언 const float = 7.12; // 실수 선언 const floatToInt = parseInt(float); // 7 const intTofloat = int.toFixed(3); // "3.000" const StringToFloat = parseFloat('6.84px'); // 6.84 const StringToInt = parseInt('6.84px'); // 6 무한대(Infinity) Infinity 또는 -Infinity로 표현
const inf = 3/0; // Infinity const infDeclare = Infinity // 선언 inf === Infinify // true // 판별 isFinite(inf) // false NaN 아래의 경우 NaN을 반환
More
함수 자바스크립트에서 함수는 기본적인 구성 블럭 중 하나
함수 사용을 위해서는 함수를 호출하고자 하는 범위 내에서 정의해야함
선언 선언문 function 함수명(매개변수) { 함수 식 return 반환값 } 표현식 let myFucn = function(매개변수) { 함수 식 return 반환값 } 화살표 함수 표현식 let myFunc = (매개변수) => { 함수 식 return 반환값 } let myFunc = 변수 => 결과 // 인자가 하나라면 괄호 생략 가능 함수 선언문은 호이스팅되지만, 표현식은 인터프리터가 해당 줄에 도달해야 로드됨
More
점수 기능 구현 게임판의 칸이 세로 또는 가로로 한 줄이 전부 채워지면 해당 줄을 지우고 점수를 올려야한다.
점수 관리 GameData.js
import React, { useState, createContext } from "react"; const GameDataContext = createContext({ state: { gamemode : 7, score : 0 }, actions : { setGamemode: () => {}, setScore: () => {}, } }) const GameDataProvider = ({ children }) => { const [gamemode, setGamemode] = useState(7) const [score, setScore] = useState(0) const context = { state : { gamemode, score }, actions : { setGamemode, setScore } } return ( <GameDataContext.
More