Bamboo is coming

[210412]자바스크립트 프로그래밍 입문(한빛) 6장 연습문제 풀이 본문

Daily life/Development vlog

[210412]자바스크립트 프로그래밍 입문(한빛) 6장 연습문제 풀이

twenty 2022. 1. 6. 16:11

 

학교 커리큘럼에 따라 이번 학기에 자바랑 자바스크립트를 같이 배우고 있다. 아무래도 비슷해서 이해가 쉽긴 하지만 시험을 봐야하는 입장에서 let, int 같이 사용하는 단어들이 조금씩 다른게 너무 헷갈려서 머리가 너무 아프다 ㅠㅠ

 

 

1.

let book = {
		name: 'Nature of Code',
		price: '30000원',
		author: '다니엘 쉬프만',
		ISBN: 9788968481901,
		pages: '620페이지'
};
 

2.

function product(name,weight,price){
	this.name=name;
	this.weight=weight;
	this.price=price;
}

let pro = new product("돼지삼겹살",100,1690);

product.calculate = function(order){
	let result = 0;
	return result = pro.price*(order/pro.weight);
}

console.log(product.calculate(200));
 

3.

다음 코드의 실행 결과는 오류이다.

let number = 273;
number.print = function () {
    console.log(this);
};

number.print();
number.print();
number.print();

TypeError: number.print is not a function
    at Object.<anonymous> ((생략):6:8)
 

우선, 문제에 제시된 코드에 number의 타입을 확인해보면 number로 나온다.

하지만 number.print 형식으로 선언된 저 문은 보통 메소드에서 쓰이는데 객체의 속성 중 자료형이 함수인 속성을 메소드라고 한다.

그런데 객체를 선언하지 않고 number에 메소드를 선언하니 오류가 난다.

let number = new Number(273);
number.print = function () {
    console.log(this);
};

number.print();

//출력 
[Number: 273] { print: [Function (anonymous)] }
 

그래서 number를 객체 자료형으로 선언해서 출력했다.

이 부분에 대한 자세한 내용은 같은 책 7장 182p에 나온다.

 

4. 3번 prototype

 

class - 클래스, object - 객체, global - 전역변수

 

 

5. 다음 코드의 실행 결과는 오류

let object = {
	"+":1,
	"-":2,
	"*":3,
	"/":4
};

console.log(object.+);
console.log(object.-);
console.log(object.*);
console.log(object./);

//결과
SyntaxError: Unexpected token '+'
 

 

let object = {
	"+":1,
	"-":2,
	"*":3,
	"/":4
};

console.log(object['+']);
console.log(object['-']);
console.log(object['*']);
console.log(object['/']);

//결과
1
2
3
4
 

객체를 불러오는 방법으로는 객체.키, 객체['키']로 두가지가 있다.

특수문자의 경우 객체.키 방식으로 오류나니 객체['키']로 써야한다.

아무래도 +,-,*,/는 연산자로 사용되는 특수문자다보니 오류가 나는것 같다.

따옴표로 String 처리를 해주고 나서 사용해야한다.

 

 

 

 

 

 

참고 : https://www.zerocho.com/category/JavaScript/post/572c6f759a5f1c4db2481ee3

 

 

Comments