그간 대강 두리뭉실 써왔던 javascript를 다시 보고 있다. 재입문이 아니라 처음 배우는 느낌이다.

함수 선언 VS. 표현식

함수에는 두 가지 리터럴 형태가 있는데, 다른지는 몰랐었다.

[함수 선언-function declaration]

function add(num1, num2){
return num1 + num2;
}

[함수 표현식-function expression]

var add = function (num1, num2){
return num1 + num2;
}

함수 선언식을 사용하면 코드가 실행 될 때 컨텍스트(선언된 함수를 포함하고 있는 함수 스코프 또는 전역 스코프) 상단에 끌어올려진다고 한다. 즉, 함수를 호출하는 코드가 함수를 선언한 코드보다 앞에 있어도 에러가 발생하지 않는다는 뜻이다.(hoisting)

var result = add(5,5);
function add(num1, num2){
return num1 + num2;
}

함수 호이스팅(hoisting)은 함 수 이름을 먼저 처리하기 때문에 일어나는 현상으로 함수 선언에만 적용된다. 
같은 자리에 함수 표현식으로 작성하면 에러가 난다.

[인용-객체지향자바스크립트의 원리]

정규식

숫자키 버튼 및 텍스트박스 직접 입력 등의 입력값에 대한 검증을 하기 위해 정규식 사용. 
참조 : 정규식

strict mode

개발과정에서 발생될 수 있는 오류에 대해 더 엄격하게 두기.

참조 : Strict mode


계산기 프로그램 OOP 로 만들기

객체지향 언어 특징을 다시 정리하면


'프로그래밍 > javascript' 카테고리의 다른 글

Closure  (0) 2018.07.04
[ECMAScrpt6] Arrow 함수  (0) 2018.04.03
블로그 이미지

ohnewdev

배워서 남주자

,

[postgresql] UPSERT

  1. SQL- upsert 만드는 법 
    기존 오라클에서 사용하던 merge 구문효과를 postgresql 에서 사용하기 위해 UPSERT 문을 만들어 사용한다.

    1)

    INSERT INTO spider_count (spider, tally) VALUES ('Googlebot', 1);

    2)

    UPDATE spider_count SET tally=tally+1 WHERE date='today' AND spider='Googlebot';

    이와 같은 2개의 구문이 있다고 할 때,변환 방법은 다음 처럼 한다. upsert 라는 변수로 가정하고,

     $insert = "INSERT INTO spider_count (spider, tally) SELECT 'Googlebot', 1";

    $upsert = "UPDATE spider_count SET tally=tally+1 WHERE date='today' AND spider='Googlebot'";
  2. 위 2개의 변수를 아래 모양에 맞춰 넣는다.

    WITH upsert AS ($update RETURNING *) $insert WHERE NOT EXISTS (SELECT * FROM upsert);
    WITH upsert AS ( (UPDATE spider_count SET tally=tally+1 WHERE date='today' AND spider='Googlebot') RETURNING *) INSERT INTO spider_count(spider, tally) SELECT 'Goolgebot', 1 WHERE NOT EXISTS( SELECT * FROM upsert)


'프로그래밍 > SQL' 카테고리의 다른 글

[SQL] rownum, limit(top), order by 순서지정  (0) 2017.04.11
블로그 이미지

ohnewdev

배워서 남주자

,

Java Pair 자료구조

C++ 에는 Pair 자료구조가 있는데, 자바에는 없다. 
직접 만들어서 써야 하는 건가? 
찾아보다가 맘에 드는 소스를 보관해본다.

    class Pair<L,R> {
final L left;
final R right;

public Pair(L left, R right) {
this.left = left;
this.right = right;
}

static <L,R> Pair<L,R> of(L left, R right){
return new Pair<L,R>(left, right);
}
}

list.add(Pair.of(x,y)); // my preference 
list.add(pairOf(x,y)); // use with import static x.y.Pair.pairOf

참고 : @simbo1905 http://stackoverflow.com/questions/521171/a-java-collection-of-value-pairs-tuples


'프로그래밍 > JAVA' 카테고리의 다른 글

Web-Scraping(XML)  (0) 2017.04.06
블로그 이미지

ohnewdev

배워서 남주자

,