목록Front-end (103)
NULL
function f() { console.log(this); // 바인드된 속성을 가리킨다. console.log("f is called"); } function setName(name){ this.name = name; } var o = { name: "obj", method:f, setName:setName}; var o2 = { name: "", setName:setName}; o.setName("obj1"); // // o.setName속성 setName 메소드에 obj1의 값을 전달한다. o2.setName("obj1");// o2.setName속성 setName 메소드에 obj1의 값을 전달한다. console.log(o, o2); 객체 속성에 함수가 들어가면 그 함수를 메소드라고 부른다. 일..
함수 안에서 밖에 선언된 같은 이름의 변수를 사용하는 경우 함수 밖의 변수를 잠시 가려두고 해당 함수 안에 선언된 변수로만 인식해서 사용한다. 이것은 shadowing이라고 한다. 이때 같은 이름을 가진 함수 밖의 변수값은 변하지 않는다. 따라서 함수 안에서만 값이 유지되어야하는 경우에는 함수 안에서 var를 사용한다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/GITWd/btrolTZeHFH/kOjeZPrsepB3tkgZAfj03k/img.png)
Scope는 범위이라는 뜻이며, 즉 스코프는 변수에 접근할 수 있는 범위이다. 스코프는 전역, 지역 2가지로 타입으로 나뉜다. 전역 스코프(Global Scope)는 어느 곳에서든지 해당 변수를 접근 할 수 있다. 지역 스코프(Local Scope)는 해당지역에서만 접근할 수 있고 벗어난 곳에선 접근할 수 없다. js에서 함수를 선언할 때마다 새로운 스코프를 생성하게 되며, 함수 몸체에 선언한 변수는 해당 함수 몸체 안에서만 접근할 수 있다. 이것을 함수 스코프(function-scoped)라고 한다. // 전역 스코프, 지역(함수) 스코프 예제 var a = 1; // 전역 스코프 function print() { // 지역(함수) 스코프 var a = 111; console.log(a); } prin..
~ 은 다른 형제들도 선택한다. + 는 바로 밑에 있는 요소만 선택한다.
do를 실행하게 되면 무조건 한번은 실행됩니다. 그리고 그 후에 while문에서 조건을 보고 실행될지 말지 정합니다. do{ var num = parseInt( prompt("2+2=?") ); }while(num != 4); console.log("정답입니다!"); 퀴즈의 정답을 맞출때까지 계속 반복실행할때 유용합니다.
switch( choice ){ case 1: console.log("1번 메뉴를 선택하셨습니다."); break; case 2: console.log("2번 메뉴를 선택하셨습니다."); break; case 3: console.log("3번 메뉴를 선택하셨습니다."); break; case 4: console.log("4번 메뉴를 선택하셨습니다."); break; default: console.log("없는 메뉴 입니다."); break; } default는 else역할과 같다. case에 break를 걸어주지않으면 이어서 다음 case도 실행된다. 이 점을 활용해서 좋은 코드를 짤 수 있다.
var arr1 = []; // 빈 배열 var arr2 = [1, 2, 3] // 길이가 3인 배열 var arr3 = [ 1, true, 3.14, "string"]; // 어떤 자료형이든 저장될 수 있음 배열의 사용법은 위와 같다. js 배열은 타입 상관없이 넣을 수 있다. var arr = [1,2,3,4,5]; arr.pop(); arr.pop()은 배열 맨 마지막에 있는 엘리먼트를 빼서 반환한다. 따라서 arr의 값은 1,2,3,4가 된다. 반대로 arr.shift()는 배열 맨 앞에 있는 엘리먼트를 빼서 반환한다. var arr = [1,2,3,4,5]; arr.push(10); arr.push(10)을 사용하면 10의 값이 맨 뒤 배열에 추가되서 arr는 1,2,3,4,5,10이 된다. 반..
문자열도 배열이기때문에 0부터 시작한다. 문자열을 접근할때 str.charAt(인덱스) 과 str[인덱스] 총 두가지 방법이 있다. var str = "123456789"; console.log(str.charAt(0)); charAt은 문자열의 범위를 넘어서면 빈 "" 문자열값이 나오는데 str[인덱스]는 undefined가 출력된다. var str = "123456789"; str.substr(2,4); '3456' // 결과 str.substring(2,4); '34' // 결과 substr는 2부터 4길이의 문자열을 출력하고, substring은 2번째 인덱스부터 4번째 인덱스 전까지의 문자열을 출력한다. var str = "123456789"; str.substring(2); '3456789' ..
문자열 + 문자열 문자열.concat("문자열") "문자열" + 3.14를 하게 되면 숫자가 문자열로 변환되어 "문자열 3.14" 문자열로 나옵니다. var str = "hello"; str + " asd" 'hello asd' // 결과값 var str = "hello"; str.concat(" World") 'hello World' // 결과값 var str = "hello"; str.concat(" World").concat("!!") 'hello World!!' // 결과값 var str = "hello"; str.concat(" World").concat("!!").concat(123) 'hello World!!123' // 결과값