Array 랜덤 배열 Array 에 있는 배열을 랜덤으로 변경 let a = [1, 2, 3, 4, 5, 6, 7, 8, 9]; a.sort(()=>{ return Math.random() - 0.5; }); // [1, 2, 3, 4, 5, 6, 7, 8, 9] // [7, 8, 4, 3, 6, 9, 2, 5, 1] 요근래 Random으로 팀 나누기에 관심 있어서 찾아봄 Programming/Javascript 2022.05.02
this 키워드 일반적으로 this는 객체의 프로퍼티인 함수에서 의미가 있다. this 값은 런타임에 결정된다. 즉 컨텍스트에 따라 달라진다. 기본적으로 this를 개발자 도구에서 실행하면 window 전역 객체를 참고하는 것을 볼 수 있다. this === window는 true이다. 함수에서 사용되는 this는 함수 호출한 방법에 따라 변경된다. const person = { name: 'june', say(){ return `name is ${this.name}` } } person.say(); //"name is june" this가 person의 프로퍼티여서가 아닌, person에서 say를 호출했기 때문에, this는 person를 나타낸다. call() call() 메소드는 주어진 this 값 및 각각 전달.. Programming 2021.05.30
익명함수와 즉시 실행 함수 함수 표현식 방식으로 정의한 함수는 함수명을 생략 가능하다. 아래는 기명 함수와 익명 함수다. // 기명 함수 표현식(named function expression) let sum = function sum(a, b) { return a * b; }; // 익명 함수 표현식(anonymous function expression) let sum = function(a, b) { return a * b; }; 저때 sum 변수는 할당된 함수를 가리키는 참조값을 저장하게 되어 호출된다. 또한 실행도 sum 변수를 사용해야 한다. let sum = function(a, b) { return a + b; }; let b = sum; 이렇게 되면 sum과 b는 동일한 익명 함수의 참조값을 갖는다. 즉시 실행 함수(.. Programming/Javascript 2021.05.29
함수와 매개변수 함수를 호출하면서 정보를 전달할 때는 함수 매개변수(argument, parameter)를 이용한다. 매개변수는 함수가 호출되기 전에는 존재하지 않는 다는 점만 제외하면, 일반젹인 변수나 마찬가지이다. function sum(a, b){ return a+b; } sum(1, 3); 함수가 호출 될 때 전달되는 a와 b의 실제 값은 argument 이고, 함수가 값을 받을 때 쓰는 변수를 parameter라 한다. function fx(x){ console.log(`함수 안 ${x}`); x = 3; console.log(`값 할당 ${x}`); } let x = 1; console.log(`호출 전 ${x} 값`); fx(x); console.log(`호출 후 ${x} 값`); 함수 안에서 x에 값을 할.. Programming 2021.05.24
Interface 인터페이스(Interface)는 Java나 C# 등 정적 타입 언어에서 이미 많이 쓰이는 개념으로 객체가 여러 가지 프로퍼티 혹은 메서드를 가질 것이라고 선언하는 것. // interface interface student { id: number; name: string; } let person1: student; person1 = {id: 1, name: 'june'}; person1은 student의 interface에 맞춰야 한다. 선택적 프로퍼티 인터페이스의 프로퍼티가 조건에 맞춰 존재하거나 없을 수 있을 경우에는, 프로퍼티 이름 끝에 ?을 붙여 사용한다. // interface interface student { id: number; name: string; score?: number; } 읽기.. Programming/Typescript 2021.05.22
Typescript 기본 타입 Typescript는 Javascript와 거의 동일한 데이터 타입을 지원하며, 변수명 뒤에 타입을 명시하는 것으로 선언 할 수 있다. let word: string = 'Hello World'; 명시된 타입에 맞지 않는 값을 할당하면, 컴파일 시 에러가 발생된다. let word: string = 50; // Type '50' is not assignable to type 'string'. 기본 타입 // boolean let isBool: boolean = false; // null let n: null = null; // undefined let u: undefined = undefined; // number let deci: number = 5; let hex: number = 0xf00d; le.. Programming/Typescript 2021.05.22
함수 호출 및 return 하나의 단위로 실행되는 문의 집합으로, 이름과 매개변수를 갖고 있고, 호출하여 코드 블록에 담긴 문들을 실행한다. // 함수 선언(function declaration) function helloWorld() { console.log('Hello World'); } 함수는 선언만 한다고 실행되지 않고, 호출을 해야 한다. 함수를 호출할때는 함수의 이름 다음 괄호를 통해 호출한다. helloWorld(); // 'Hello World' 출력 함수 내용에 return키워드를 사용하면, 함수를 즉시 종료하고 값을 반환한다. function helloWorld() { return 'Hello World'; } helloWorld() // "Hello World" return을 명시적으로 호출하지 않으면, 반환 .. Programming/Javascript 2021.05.21
조건문 조건 분기에 따라 다른 state를 실행 if if(...) 문은 괄호 안에 있는 조건을 평가하고, 그 결과가 참(true)이면 블록이 실행된다. if(condition){ state } //예제 let i = 20; if(i === 20){ console.log('숫자는 20입니다.') } state가 단일이라면 생략 가능하나, 코드 가독성을 높이기 위해서는 블록 사용을 추천을 한다고 한다. if ... else if 문에 else를 통해 다른 분기를 처리할 수 있다. if문이 참이 되지 않고 거짓일 때 실행된다. let i = 25; if(i === 20){ console.log('숫자는 20입니다.'); } else { console.log('숫자가 20이 아닙니다.'); } if ... else .. Programming/Javascript 2021.05.20
반복문 여러 번 동작을 반복 실행하는 경우, while과 for 문을 사용할 수 있다. while 문 while 루프는 조건(condition)을 만족하는 동안 코드를 계속 반복 수행한다. while (condition) { statement } 예제 let i = 1; while (i Programming 2021.05.19
객체 원시 타입은 단 하나의 값만 나타내고 불변이지만, 객체는 이와 다르게 여러 가지 값이나 복잡한 값을 나타낼 수 있으며, 변할 수도 있다. 객체에도 중괄호, 즉 { }를 사용하는 리터럴 문법이 있으며, 중괄호 안에 객체의 콘텐츠로 키(key), 값(value)로 구성된 프로퍼티(property)를 추가 할 수 있으며, 키에는 문자형, 값엔 모든 자료형이 추가 될 수 있다. // 객체 생성자 문법 let person1 = new Object(); // 리터럴 문법 let person2 = { name: 'june', age: 20 }; 객체 프로퍼티 추가 let person4 = {}; person4.name = "a"; person4["working"] = true; // person4 // {name: .. Programming 2021.05.17