본 과정은 내일배움캠프 웹개발 사전캠프로 지급받은 강의의 내용을 바탕으로 정리한 글입니다.
컴퓨터 : 0과 1만을 사용함
프로그래밍 언어 : 컴퓨터와 소통하는 것
1995년 자바스크립트 등장
넷스케이프에서 만든 브라우저동작을 위한 스크립트 언어
기존에 livescript였는데 javascript로 바꿈
2005년 AJAX(에이젝스) 등장
기존엔 페이지 전체 새로고침이 되었었는데 해당 영역만 새로고침이 가능해져서
UX(User Exprience) 향상이 됨
2008년 V8 엔진 출시
2009년 Node.js 등장
기존에는 웹 브라우저만 가능했는데 서버개발도 사용이 가능해짐
하나의 언어로 FrontEnd, BackEnd, DB를 통틀어서 FullStack이 가능해짐
2015년 ES6버전 출시
2016년 프론트엔드 프레임 워크 대중화
객체지향 프로그래밍 지원
객체라는 그룹으로 묶어서 처리함
동적 타이핑 지원
변수 선언을 할때 타입을 지정하지 않아도 되고 런타임(코드가 실행되는 시점)에 결정됨
함수형 프로그래밍 지원
함수를 사용해서 프로그래밍이 가능함
비동기 처리
클라이언트 측 및 서버 측 모두 사용 가능
Node.js 이용해서 서버개발도 가능해짐
var a = 1;
var b = 2;
var c = a+b;
☞ 터미널에서 node 01.js를 입력해서 hello world가 출력되었다.
clear : 터미널의 내용을 지우는 것
//주석 : JS연산을 안함
기억하는 값을 메모리에 저장하고 재사용한다.
var myText = 'hello world'
console.log(myText)
변수 이름 : 저장된 값의 고유 이름 ex) myText
변수 값 : 변수에 저장된 값 ex) 'hello world'
변수 할당 : 변수에 값을 저장하는 행위 ex) =
변수 선언 : 변수를 사용하기 위해 컴퓨터에 알리는 행위 ex) var
변수 참조 : 변수에 할당된 값을 읽어오는것 ex) a+b
var myText1; // 이런식으로 따로도 가능하다.
myText1 = 2;
재선언 가능
재할당 가능
let
재선언 불가
재할당 가능
const
재선언 불가
재할당 불가
console.log(typeof 변수명)하면 number로 출력
let num1 = 10;
console.log(num1)
console.log(typeof num1)
☞ 일반 정수는 그냥 숫자만 입력 "2"는 숫자가 아닌 문자열임
let num2 = 3.14
console.log(num2)
console.log(typeof num2)
let num3 = 2.5e5; // 2.5 * 10^5(10의 5제곱)
console.log(num3)
console.log(typeof num3)
☞ 결과값은 250000 출력
let num4 = 'hello / 2';
console.log(num4)
☞ 결과값은 NaN 출력 (Not a number)
let num5 = 1 / 0;
console.log(num5)
☞ 결과값은 Infinity 출력
let num6 = -1 / 0;
console.log(num6)
☞ 결과값은 -Infinity 출력
let str = "hello world";
console.log(str)
console.log(typeof str)
let str = "hello world";
console.log(str.length);
☞ 11로 출력됨
let str1 = 'hello,';
let str2 = 'world';
let result = str1.concat(str2)
console.log(result)
☞ 변수명.concat(붙일 변수명)은 문자열을 합치게 한다.
let str3 = "Hello, world!";
console.log(str3.substr(7, 5)); // "world" 시작위치부터 몇개까지 표시할건지
console.log(str3.slice(7, 12)); // "world" 시작위치부터 끝위치까지
let str4 = "Hello, world!";
console.log(str4.search('world!'))
☞ 7번째부터 시작이라는걸 알려줌
let str5 = "Hello, world!";
let result01 = str5.replace("world",
"javascript")
console.log(result01)
☞ Hello, javascript!로 출력
let str6 = "apple, banana, kiwi";
let result02 = str6.split(",");
console.log(result02); //
☞ 문자열이 각각 ,를 기준으로 ["apple", " banana", " kiwi"] 배열로 나타난다.
불린은 참(true)과 거짓(false)을 판단함
if문에 사용함
let bool1 = true;
let bool2 = false;
console.log(bool1)
console.log(bool2)
☞ true와 false로 출력
선언은 했으나 할당이 되지 않음
let x;
console.log(x); // undefined
값이 존재하지 않음, 의도적으로 값이 없다는걸 명시하는 것
let y = null;
console.log(y)
let person = { name: 'Alice', age: 20 };
person.name // 'Alice'
person.age // 20
let numbers = [1, 2, 3, 4, 5];
let fruits = ['apple', 'banana', 'orange'];
암시적 형 변환은 자바스크립트에서 자동으로 수행되는 형 변환이며, 일반적으로 연산자를 사용할 때 발생합니다.
let result1 = 1 + "2"
console.log(result1)
console.log(typeof result1)
let result2 ="1" + true;
console.log(result2)
console.log(typeof result2)
☞ 데이터타입은 문자열(string)이 출력됨\
☞ 12와 1true로 출력
☞ {객체}, null, underfined이 문자열과 만나면 문자열이 우선시 된다.
let result3 = 1 - "2";
console.log(result3)
console.log(typeof result3)
let result4 = "2" * "3";
console.log(result4)
console.log(typeof result4)
☞ 결과는 -1과 6으로 출력
☞ 데이터타입은 숫자(number)로 출력
☞ 빼기, 곱하기, 나누기 연산자가 나온 경우 숫자를 우선시 한다.
의도적으로 형변환 하는 것
console.log(Boolean(0)); // false
console.log(Boolean("")); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean("false")); // true
console.log(Boolean({})); // true
let result5 = String(123); // "123"
console.log(typeof result5);
console.log(result5);
let result6 = String(true); // "true"
console.log(typeof result6);
console.log(result6);
let result7 = String(false); // "false"
console.log(typeof result7);
console.log(result7);
let result8 = String(null); // "null"
console.log(typeof result8);
console.log(result8);
let result9 = String(undefined); // "undefined"
console.log(typeof result9);
console.log(result9);
☞ 모두 데이터 타입은 string이 됨
let result10 = Number("123")
console.log(result10)
console.log(typeof result10)
☞ 문자열도 숫자로 출력됨
+, -, *, / , %를 사용할 수 있음
console.log(1 + 1); // 2
console.log(1 + "1"); // 11
☞ 숫자 + 숫자는 연산이 되지만 숫자 + 문자열은 단순하게 붙여줌
console.log(1 - "2") // -1
console.log(1 - 2) // -1
☞ 빼기 연산자는숫자를 우선시 해서 둘다 -1로 출력됨
console.log(2 * 3);
console.log("2" * 3);
☞ 마찬가지로 숫자가 우선시 되어서 6으로 출력됨
console.log( 4 / 2);
console.log("4" / 2 );
☞ 마찬가지로 숫자가 우선시 되어서 2로 출력됨
console.log(5 / 2); // 2.5
console.log(5 % 2); // 나머지 1
등호 연산자 (=)
let x = 10;
더하기 등호 연산자 (+=)
x에 5를 더하는것
x += 5;
x = x+5
☞ 둘다 같은 것
☞ 둘다 같은 것
let a = 10;
a *= 2;
console.log(a);
☞ 출력하게 되면 20이 나옴
console.log(2 === 2); // true
console.log("2" === 2); // false
console.log(2 === "2"); // false
불일치 연산자 (!==)
값이 서로 다르면 true가 나옴
console.log(2 !== 2); // false
console.log("2" !== 2); // true
console.log(2 !== "2"); // true
작다 연산자 < 와 작거나 같다 <=
console.log(2 < 3); //true
console.log(2 <= 3); // 작거나 같다 true
논리곱 연산자 &&
console.log(true && true); // true
console.log(true && false); // false
console.log(false && true); // false
console.log(false && false); // false
☞ 둘다 true이여야 true를 반환하는 연산자
논리합 연산자 ||
console.log(true || true); // true
console.log(true || false); // true
console.log(false || true); // true
console.log(false || false); // false
☞ 둘 중 하나라도 true라면 true로 반환하는 연산자
조건에 따라 값을 선택할수 있다.
let y = 10;
let result = (y > 5) ? "크다" : "작다";
console.log(result); // "크다"
삼항인 이유:
(y > 5) : 1항
"크다" : 2항
"작다" : 3항
☞ y가 5보다 크다면? "크다"라고 나타내고 아니라면 "작다"라고 나타내라는 뜻
console.log(typeof "5"); // string
input과 output을 가진 기능의 단위를 함수라고 명명함
자바스크립트 내에서 기능의 단위로 묶은 다음 재활용을 한다는 의미
function(){}
function add(매개변수){
//함수 내부의 필요한 로직들
}
1) 함수 출력
출력은 항상 return을 통해서 함
2) 두개의 숫자를 입력 받아서 덧셈을 한 후 내보내는 함수
function add(x, y){
return x + y;
}
let add2 = function(x, y){
//왼쪽에 add2라는 이름을 써둬서 함수명을 안적어도됨
return x + y
}
//첫번째 방법
function add(x, y){
return x + y;
}
console.log(add(2, 3));
//두번째 방법
let Result = add(3, 4)
console.log(Result);
☞ 함수명(입력값)이 형식이므로 add(2, 3)으로하면 5가 출력됨
☞ 두번째처럼 할당해도 됨
함수는 input과 output이 있어야함
[input]
매개 변수 : function add(x, y)의 ()안에 들어가는 x, y를 매개변수라고 함
= 매개체가 되는 변수
[output]
반환값 : return문 뒤에 오는 값
스코프 : 변수가 어디 범위까지 영향을 끼칠수 있는가?
전역변수 : 모든 범위에서 영향을 끼치는 변수
지역변수 : 함수 내에서 영향을 끼치는 변수
let x = 10; //전역변수
function printX() {
console.log(x); // 지역변수
}
console.log(x)
printX(); // 10
ES6에서 새로생김
function add (x, y){
return x + y;
}
//화살표 함수
let arrow = (x, y) => {
return x + y;
}
// 한줄로 출력
let arrow = (x, y) => x + y; //별도의 내용이 없을 때 가능
// 매개변수가 하나일 경우
let arrow2 = (x) => x
let arrow2 = x => x //이렇게 생략가능
오늘의 한줄평 : 아직 끝나지 않았다. 매우 내용이 길어서 일단 중간에 정리해서 올리는 TIL! 오늘은 팀이 바뀌었다 ㅇ0ㅇ! 새로운 기분 :) 자바스크립트 그나마 틈틈히 공부해서 이해가 잘 되는 것 같다.