[TIL 2021.09.25] js

Kyu·2021년 9월 25일
0

TIL

목록 보기
258/322

Today I Learned

호이스팅
변수 선언은 최상위에 선언된 것 처럼 행동

예시:

console.log(test);
var test = "hello world";
결과
undefined

왜냐면 호이스팅되면서

var test;
console.log(test);
test = "hello world";

라는 형식으로 나오기 때문이다.


함수 스코프
var, let, const

let과 const를 쓰기를 권장. es6부터 나옴.

var는 함수스코프.

function test() {
  var abc = "hellow world";
}
console.log(abc);

에러가 난다.
왜냐면 var는 함수내에서만 작동 (지역변수)
근데 함수밖에 선언하면 글로벌변수로 작동

let, const는 블록 스코프라고 함.
함수, if, while, for, try/catch 등의 모든 코드 블록 안에서 선언한 변수는 코드 블록 내에서만 유효.
코드 블록외부에서는 참조 불가능.

let foo = 123; // 전역 변수

{
  let foo = 456; // 지역 변수
  let bar = 456; // 지역 변수
}

console.log(foo); // 123
console.log(bar); // ReferenceError: bar is not defined

출처: https://poiemaweb.com/es6-block-scope

아래를 computed property라고 함.

const user = {
	["my "+"age"] : 23,
	[1+5] : 6
}

객체 유용한 함수

Object.assign(): 객체 복제를 한다

const newUser = Object.assign({}, user); << -- 그대로 복제, {}안에 key: val 형식으로 넣으면 중복되지않으면 속성을 하나 추가하는거고 같은 이름이면 덮어쓴다.

let n = "name";
let a = "age";

const user = {
	[n]: "Mike", // 변수를 키값으로 사용하는법 -> [] 를 붙인다.
	[a]: 30,
};
function makeObject(key, val) {
	return {
		[key]: val
	};
}

const obj = makeObj("성별", "male");

var arr = [
	"바보, ㅋㅋ",
    "천재, ㅎㅎ"
];
const result = Object.fromEntries(arr); <-- 배열을 객체로 만들어줌

따옴표 활용

', "", `

html코드면 중간에 ㄷ큰따옴표가 많으니까 홑따옴표로 감싸는게 편하다.

영어 문자열이면 중간에 홑따옴표들어가니까 큰따옴표로 감싸는게 편하다.

백틱은 중간에 변수를 넣거나 표현식을 넣을수있다.
백틱은 여러줄을 넣을수있다.

var myAge = 24;

var a = `안녕 내 나이는 ${3+5}살이야.`
var b = `안녕 내 나이는 ${myAge}살이야.`
profile
TIL 남기는 공간입니다

0개의 댓글