JavaScript 70

[JS]Function(함수) part.1

함수정의 방법1 - 함수 선언(정의)문 - Hoisting이 된다. 함수정의 방법2 - 함수표현식(익명함수) - Hoisting 안된다. ▲ 변수가 함수를 참조하게 된다. 즉 변수에 함수를 대입한다. 함수정의 방법3 - 즉시 실행함수 JS에서의 함수특징 이제 하나씩 예제를 보면서 알아보자 - Function생성자 함수를 이용 ▲ 출력은 잘 되지만 이렇게 사용하지는 않는다. - 함수 선언(정의)문으로 함수 정의하기 ▲ 함수 정의(선언)문을 사용해서 함수를 정의하면 hoisting이 일어난다. 때문에 출력결과를 보면 '정의문 위에서 호출:'부분이 제일 처음으로 출력된 것이 아닌, add()함수안의 내용들이 먼저 출력된 것을 볼 수 있다. ▲ arguments란? ▲add함수는 인자를 2개받는데 5개를 넣어주..

[JS]If문

▲ parseInt()함수는 숫자형식의 문자열을 숫자로 바꿔주는 함수다. 숫자형식이 아닌 문자열은 숫자로 바꿀 수 없기때문에 NaN을 반환한다. 해당 변수가 NaN인지 아닌지를 판단하는 함수 isNaN을 사용해서 NaN을 판단한다. ▲undefined는 하나의 타입이면서 값이므로 quotation으로 감싸지 않고 그냥 비교가능하다. ▲ if(null_) 은 if(null_!=null)과 동일하다. 왜냐하면 JS 에서 조건식에서는 0, null false는 모두 false로 처리하기 때문이다. ▲ new 생성자 함수로 만든 것의 타입은 object이므로 두번째 if절의 결과값은 'str은 string타입이 아니다'가 된다.

[JS]Array(배열) part.2(배열의 주요 함수)

1. 배열 요소 추가 1) 인덱스를 지정해서 추가 2) push() 함수 사용 3) unshift() 함수 사용 2. 배열 요소 가져오기 1) pop()함수 사용 2) shift()함수 사용 3. 배열요소 추출하기 1) slice() 함수 사용 ▲ 먼저 배열에 값을 좀 넣어두자 2) splice() 함수 사용 ▲ 2번방부터 끝방까지 삭제하여서 원본배열이 변경되고, 삭제한 요소로 새로운 배열을 만들었다. 다시 초기화상태에서 현재 원본배열 method는 아래와 같은 상태이다. ▲ 삭제는 하지 않고 추가만 할 수도 있다. 5. 배열의 모든 요소에 함수를 적용하여 요소 변환하기 1) map()함수 사용하기 6. 배열의 모든 요소에 함수를 적용하여 하나의 값으로 변환하기 ▲ reduce()함수를 이용해서 하나의 ..

[JS]Array(배열) part.1

▲ 자바와 JS의 배열은 다르다. JS의 배열은 여려 타입의 값을 저장할 수 있다. 또한 배열의 크기가 고정되어 있지않고 사용자가 값을 넣는만큼 계속 커진다. 배열 선언 방법1 - 배열 크기 미지정 ▲ 배열을 new Array()로 만들던, [ ]로 만들던지 모두 타입은 Object이다. 기존에 arr1 배열의 크기는 0이였다. arr1[3]=100을 함으로써 인덱스3에 100을 넣으므로써 arr1의 길이는 4가된다. arr1[5]=200을 함으로써 인덱스 5번방에 200을 넣었다. arr1[4]은 원래 존재하지 않았지만 JS에서 배열의 크기는 가변적이기 때문에 자동으로 4번방이 생기며 총 배열의 길이는 6이된다. 또한 배열에 참조하는 객체가 없는 방 즉 arr1[0], arr1[1],arr1[2],ar..

[JS]Operator(연산자)

▲ JS에서는 new 연산자 혹은 생성자함수 등을 사용하지 않고 객체를 표현하면 그 형식을 리터럴이라고 한다. 1. 산술연산자 2. 비교 연산자 ▲ JS에서는 조건식에서는 0이나 null이나 false면 false로 처리되고, 그 이외의 오든 값은 true로 변환 및 판단되는 특징이 있다. 또한 기타 산술식등에서 true는 1로, false는 0으로 변환되어 실행되는 특징이 있다. ▲ 자바에서는 안되는 연산들이 JS에서는 가능하다. ▲ JS에는 자바에는 없는 === ,!==연산자가 있다. ▲ NaN끼리는 등가비교하면 무조건 false이기 때문에 비교하는 의미가 없다. NaN은 '숫자가 아니다'라고 하는 것이므로. new Number('HELLO')도 NaN이고 new Number('안녕')도 NaN이다...

[JS]변수(Variable)

JS는 Java와 비교했을 때 자유도가 높은 언어이다. 또한 Java와 비슷하면서도 다른 언어이다. ▲ JS의 특징(?) 이번 포스팅에서는 JS에서의 변수에 대해 알아보자. 참고로 console.log는 브라우저에서 F12 또는 마우스 오른쪽에서 검사 부분에서 console창에 출력되는 출력코드이다. 브라우저창 위에 바로 출력되는 코드가 아니다. ▲ 위 코드에서 우리는 num이라는 변수를 선언만 하였다. 그리고 출력을 해봤더니 변수 num의 값과 타입 모두 undefined라고 나온 것을 볼 수 있다. 여기서 undefined는 Java에서처럼 정의가 되지 않았다라는 의미가 아닌, num이라는 변수에 참조하는 메모리(객체)가 아직 정의가 되지 않았다는 의미이다. 또한 JS에서 undefined는 하나의 ..

[JS]JavaScript란?

JavaScript (JS)는 가벼운, 인터프리터 혹은 just-in-time 컴파일 프로그래밍 언어로, 일급 함수를 지원한다. 웹 페이지를 위한 스크립트 언어로 잘 알려져 있지만, Node.js, Apache CouchDB, Adobe Acrobat처럼 많은 비 브라우저 환경에서도 사용하고 있다. JavaScript는 프로토타입 기반, 다중 패러다임, 단일 스레드, 동적 언어로, 객체지향형, 명령형, 선언형(함수형 프로그래밍 등) 스타일을 지원한다. JS를 구동하는 기능은 브라우저에 내장되어 있다. JS는 Client-Side Script Language이다. 대표적으로 HTML, CSS3, JS, jQuery등이 있는데 이런 Client-Side Script Language언어들은 웹 브라우저에 의해..

Object(객체)

표준 내장 객체(Standard Built-in Object)는 JS가 기본적으로 가지고 있는 객체들을 의미한다. 내장 객체가 중요한 이유는 프로그래밍을 하는데 기본적으로 필요한 도구들이기 때문이다. 결국 우리는 이 내장 객체들을 이용하여서 새로운 객체를 만들고 이를 통해서 새로운 소프트웨어를 만들어 내기 때문에 더욱이 중요하다고 할 수 있다. JavaScript는 그렇게 많지 않은 내장 객체들을 가지고 있는데 다음과 같다. Object Function Array String Boolean Number Math Date RegExp 우리는 이 객체들의 기능을 확장해볼 수도 있다. 배열(Array)의 기능을 확장시켜보자. ▲ new생성자를 이용해 Array라는 새로운 객체를 만들고 우리는 그 객체안의 데이..