전체 글 219

20. strict mode

1. strict mode란? function foo(){ x = 10; //스코프체인상의 변수를 검색하고 전역스코프에도 존재하지 않으면 암묵적으로 전역 객체에 x프로퍼티를 생성 } foo(); console.log(x); // - 개발자의 의도와 상관없이 발생한 암묵적 전역은 오류를 발생시키는 원인이 될 가능성이 크다. - 따라서 반드시 var let const키워드를 사용해서 변수를 선언한 후 사용해야 한다. - strict mode는 자바스크립트 언어의 문법을 더 엄격히 적용해 오류를 발생시킬 가능성이 높거나, 자바스크립트 엔진의 최적화 작업에 문제를 일으킬 수 있는 코드에 대해 명시적인 에러를 일으킨다. - ESLint를 사용해도 strict mode와 유사한 효과를 얻을 수 있다. - 린트 도구..

19. 프로토타입

- 자바스크립트는 명령형, 함수형, 프로토타입 기반, 객체지향을 지원하는 멀티 패러다임 프로그래밍 언어이다. - 자바스크립트는 프로토타입 기반의 객체지향 프로그래밍 언어이다. *클래스 -> ES6에서 클래스가 도입되었지만 기존 프로토타입 기반 객체지향 모델을 폐기하는것은 아니다. -> 클래스도 함수이며 프로토타입 기반의 Syntatic sugar라고 볼 수 있다. (사람이 쉽게 이해하고 쓸 수 있게 만들어진 문법) -> 생성자 함수와는 작동하는 방식이 동일하지 않기 때문에 새로운 객체 생성 메커니즘으로 보는것이 더욱 합당하다. 1. 객체지향 프로그래밍 - 명령형 프로그래밍의 절차지향적 관점에서 벗어나 여러개의 독립적 단위, 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임을 의미한다. - 실체는 ..

MySQL - 유용한 내장 함수들

숫자와 관련된 함수 sum : 더하기 avg : 평균 min : 최소값 max : 최대값 mod : 나머지 count : row수 세기 stddev : var_samp sin cos tan acos asin atan atan2 exp ln log log2 log10 ceil floor round abs : 절대값 반환 power sqrt : 제곱근 계산 mod(%) rand() bin: 2진수로 바꾸기 hex: 16진수로 바꾸기 oct: 8진수로 바꾸기 conv('EF',16,10) : 16진수를 10진수로 바꾸기 형변환 select CAST('2018-12-25 11:22:22.123' AS DATETIME) select CAST(1.577 AS Signed Integer) : 항상 반올림이 된다. C..

18. 함수와 일급 객체

1. 일급 객체 - 다음과 같은 조건을 만족하는 객체를 일급 객체라 한다. 무명의 리터럴로 생성할 수 있다. 즉 런타임에서 생성이 가능하다. 변수나 자료구조(객체,배열)에 저장할 수 있다. 함수의 매개변수에 전달할 수 있다. 함수의 반환값으로 사용할 수 있다. - 함수가 일급 객체라는 것은 함수를 객체와 동일하게 사용할 수 있다는 의미이다. 2. 함수 객체의 프로퍼티 - 함수는 객체이기때문에 프로퍼티를 가질 수 있다. - arguments, caller, length, name, prototype 프로퍼티는 모두 함수객체의 데이터 프로퍼티다. - 하지만 __proto__는 접근자 프로퍼티이며, 함수 객체 고유의 프로퍼티가 아니라 Object.prototype객체의 프로퍼티를 상속받았다. 2.1 argum..

17. 생성자 함수에 의한 객체 생성

1. Object 생성자 함수 - new연산자와 함께 Object생성자 함수를 호출하면 빈 객체를 생성해 반환한다. - 생성자 함수에 의해 생성된 객체를 인스턴스라 한다. 2. 생성자 함수 2.1 객체 리터럴에 의한 객체 생성 방식의 문제점 - 객체 리터럴은 단 한개의 객체만 생성한다. - 동일한 프로퍼티를 갖는 객체를 여러개 생성해야 하는 경우에는 비효율적이다. 2.2 생성자 함수에 의한 객체 생성 방식의 장점 프로퍼티 구조가 동일한 객체 여러개를 간편한게 생성할 수 있다. 생성자 함수는 new연산자와 함께 호출하면 해당 함수가 생성자 함수로 동작한다. * this - this는 객체 자신의 프로퍼티나 메서드를 참조하기 위한 자기 참조 변수이다. - this가 가리키는 값, this바인딩은 함수 호출 ..

숫자야구 리뷰

오늘의 취지는 코딩테스트 볼떄 어떤 취지로 짜는게 좋은지 알려주는것 사소한것에서 놓치면 안되는것 /* 코딩테스트할떄는 html에 너무 집중하면 안된다 처음에는 주석으로 크게 필요한것들을 주소를 잡아둔다 전역 const는 대문자 snakecase로 잡는다. 전역변수는 const가 위로 오는것이 좋다 math같은 애들은 시스템을 많이 부르기 때문에 가급적 덜 쓰도록 하면 된다. readline함수는 터미널이 있는 모든 언어에서는 다 사용할 수 있다. 이런 프로세스츨 진행할때는 종료같은것들을 만들어주는게 좋다. 글로벌 변수는 앞에다 g를 붙여주는게 좋다. 소스의 구성을 보고 if와 for을 최대한 줄이는 방법으로 한다. */ const term = readline.createInterface({ input: ..

SQLD 최종 정리강의 1편 - SELECT문장 ~ 트랜잭션 관리 언어(TCL)

1. 명령문 연산순서 정렬 FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY 2. DML, DDL, TCL, DCL - DML : select, insert, delete, update - TDDL : alter, create, modify, drop - TCL : rollback, commit - DCL : grant, revoke 3. DISTINCT (집약의 기능을 한다.) - 중복된것을 하나로 모은다. 4. Alias(AS) - select절에서는 as 생략가능, 컬럼명에 띄어쓰기가 있을 경우 ""를 이용해 묶어서 사용 - from절에서는 as 사용 불가. 5. Concat - + (SQL SERVER) - || (Oracle) - 인수가 반드시 딱 2..

DataBase/SQLD 2021.09.02

MySQL - SQL 한방에 정리하기 Part 2 - DML, TCL

DML(CRUD) -insert -select like in between distinct count(distinct col1) order by, rand() order by col1 is null ASC, col1 ASC limit a, limit a,b group by, having case when ~else ~end on duplicate key update... : unique한 키를 가진 컬럼을 duplicate 시킨다 join inner join outer join left outer join right outer join full outer join :mysql에서는 없기때문에 left outer join과 right outer join을 union걸어서 사용한다. cross join : ..

13~17 deep dive

스코프는 유효범위 렉시컬스코프라는건 알아야 한다 펑셔널랭기지는 렉시컬스코프를 대부분 이용한다. 렉시컬스코프는 선언된곳에서 자기의 스코프를 갖는다 (실행x) var는 해당 함수위로 호이스팅되어 참조가된다. for문에 var가 들어가면 주의해야한다. 전역변수는 오해의 소지가 많기 때문에 전역변수는 반드시 풀네임으로 써주자! 전역객체가 es11부터 globalthis로 통합되었다. 자바스크립트는 모듈스코프라는게 별도로 존재한다. 모듀스코프는 모듈 내에서만 할 수 있는 스코프 자바스크립트가 실행되면 기본적인 빌트인함수들이 올라가는곳을 실행컨텍스트라고 한다. 실행 컨텍스트 안에는 오브젝트...윈도우..글로벌... 등이 있다 var는 윈도우의 객체로 잡힌다 let는 별도의 공간에 잡힌다 declarotive env..