1. 배운것들
- 변수선언
- 연산자
- Type 종류
- Type 확인 방법
자바스크립트에서 변수선언은 var let const가 있다. let과 const는 es6들어서 추가로 생긴 것이고 어떤 변수를 쓰느냐에 따라 변수의 scope 즉 유효범위가 달라진다.
연산자의 경우 +-=%/ 등이 있고 값이 같다는 연산자 == 는 타입을 비교해주지 않아서 보통 자바스크립트에서는 ==대신 ===를 쓴다.
&&은 둘다 참일 때 트루이고 ||는 하나만 참이라도 트루값이다.
const name = "crong";
const result = name || "codesquad"; 에서 name에 값이 있으니 crong이 되고 없으면 codesquad가 된다.
삼항연산자의 경우
int a = 11;
if(a > 10 ) ? "up" : "down" 에서 a가 참이면 up 거짓이면 down이 실행된다.
타입의 종류는 string int function등이 있고 확인법은 일반타입은 type of 변수 를 하면되고
보통은 toString.call(변수)를 한다.
2. 배운것들
- If
- switch
- for
- while
- String replace메서드
if 와 switch는 넘어가고 for문부터 하자면
var a = ["1", "2", "3"];
for(int i = 0; i < a.length; i++) 보통 이런식으로 많이하는데 이렇게 하지 말고
for(int i = 0, len = a.length; i < len; i++) or
len = a.length;
for(int i = 0; i < len; i++) 이런식으로 해야 매번 배열을 탐색하지 않는다.
a = "12 : 34"
a.split(":")를 하면 a에는 ["12""34"]가 된다
a.replace(":", "%")로 하면 :가 %로 변한다.
3.배운 것들
- Function
- Hoisting
- arguments
- 기본 반환값 (undefined)
함수는 function a ()로 선언한다.
단 자바스크립트는 함수를 변수처럼 만들 수 있다.
기본적으로 함수에 값을 안넣거나 아직 안만들었을 경우 undefined라고 출력된다.
var a = function()
function a() {
b()
console.log("3434")
var b = function(){}
}
의 경우 b라는 함수를 먼저 불럿지만 출력해보면 undefined가 뜬다. 저 문제를 해결하려면
다른 함수표현식을 사용해야한다.
var b = function(){} 가 아닌 function b() {}를 사용하면 함수가 밑에 있어도 실행이 된다.
자바스크립트는 함수를 실행하기 전에 한번 쓱 훑는데 밑에 함수가 있으면 함수는 통채로 위로 가져온다. 이것을 hoistion이라고 한다.
또한 자바스크립트에서는 void 함수가 없다.
arguments는 함수가 선언될 때 넘어가는 인자값이다..??
function a()
a(1,2,3)을 하면 arguments는 3이다 argument[0],1,2에 값이 들어있다.
arguments.length를 하면 3이 출력되고 이것을 활용해서 지정한 인자값을 초과해서 값이 들어온 것들도 활용이 가능하다.
콜스택
함수를 실행시키고 종료하기전에 다른 함수가 실행되서 그 함수가 스택에 쌓인것을 말한다.
function foo(b){
var a = 5;
var result = bar(b * a)
console.log(result);
}
function bar(c){
var a = 10;
return c * a;
}
foo(10);
을 보면 foo가 실행되고 종료되기 전에 bar가 호출돼서 bar값이 return이 되면 foo가 마무리되는 것을 볼 수 있다.
'IT > 부스트코스' 카테고리의 다른 글
부스트코스 DB연결 웹앱 #6 EL,JSTL (0) | 2020.01.23 |
---|---|
부스트코스 DB연결 웹앱 #5 scope (0) | 2020.01.22 |
부스트코스 DB연결 웹앱 #4 redirect & forward (0) | 2020.01.21 |
부스트코스 DB연결 웹앱 #3 JS (0) | 2020.01.21 |
부스트코스 DB연결 웹앱 #2 WEB UI 개발- FE (0) | 2020.01.16 |