관리 메뉴

HAMA 블로그

심심풀이 자바스크립트 퀴즈 본문

Javascript

심심풀이 자바스크립트 퀴즈

[하마] 이승현 (wowlsh93@gmail.com) 2015. 11. 18. 13:15

안녕하세요 (_._)  

"프로 자바스크립트 테크닉" 과  "인사이드 자바스크립트"라는 책을 참조하여 문제를 만들었습니다.

언어를 공부하는 방법으로는  직접만들거나, 다른언어와의 비교를 통해서 습득하는 방법 말고도

문제를 풀면서 언어를 공부하는것도 지겨운 공부를 재밌게하는 방법중 하나라고 생각합니다 :-D

* 함수라 쓰고 객체라 읽는다.

* 함수안에 함수가 있는것이 모든 혼란의 근원이지만,  정수가 된다."


자 렛츠고~!!

1 번 .  다음 구문은 올바른 것인가?   (DOM)

html ====================================

<input id="input1" type="text" value="값" />  

javascript ================================

var inputTxt = document.getElementById('input1'); 

inputTxt.text("hi");   


2 번. 다음 구문은 올바른 것인가?  (DOM & Jquery)

 html ====================================

<input id="input1" type="text" value="hello" />  

javascript ================================

var t = $("#input1");

alert(t.text());

alert(t.html());

alert(t.val());

t.text("bye");


3번. 다음을 실행하면 결과는 ?    (객체 생성 방법)

 var People1 = { age : 44, name : 'brad' };

 function People2(name, age){

 	this.age = age;

 	this.name = name;

 };

var People3 = function (name, age){

 	this.age = age;

 	this.name = name;

 };

 var brad = new People3('brad', 30);

 console.log(brad.age);     // ??


4번. 다음을 실행하면 결과는 ?   (일급함수)

var foo = function(){
			return function(){

 				console.info("hi");

                    };

           };


var bar = foo();

bar();  // ??


5번. 다음을 실행하면 결과는 ?   (즉시실행함수)

(function(name){

	console.info("hello -> " + name);

})("brad");


6번. 다음을 실행하면 결과는 ?    (애매한 자바스크립트의 this) 

var name = "outside name";

var myObject = {

			name: "foo",

			sayName : function(){

					console.info(this.name);

			}

};


var otherObject = { name : "bar" };

otherObject.sayName = myObject.sayName;

myObject.sayName();  // ??

otherObject.sayName();  // ??


7번. 다음을 실행하면 결과는 ?    (애매한 자바스크립트의 this) 

var name = "outside name";

var myObject = {
		name: "foo",
		sayName : function(){	
				var name = "inside name";
				console.info(this.name);
		}
};

var otherObject = { name : "bar" };

otherObject.sayName = myObject.sayName;

myObject.sayName(); 
otherObject.sayName();


8번. 다음을 실행하면 결과는 ? (애매한 자바스크립트의 this) 

var value = 100;

var myObject={

	value : 1,

	func1 : function(){

			this.value +=1;

			console.log(" func1 this.value : "+ this.value);	

			func2 = function(){

				this.value += 1;

				console.log(" func2 this.value : " + this.value);

			}

			func2();

		}

}; 

myObject.func1();  // ??


9번. 다음을 실행하면 결과는 ? (애매한 자바스크립트의 this) 

name = "john";

var myObject = {

	name  : "foo",

    func1 : function(){

		 sayName =  function() {

				console.log("My name is " + this.name);     

				};

      	         sayName();  

            } 
};

myObject.func1();  // ??   


10번. 다음을 실행하면 결과는 ?   (클로저)

function outerFunc(){

	var x = 10;

	var innerFunc=function(){ console.log(x)};

	return innerFunc;

}

var inner = outerFunc();

inner();  // ? 


11번. 다음을 실행하면 결과는 ?     (모듈패턴)

var module = (function () {

    var privateKey = 0;

    function privateMethod() {

        return ++privateKey;

    }

    return {

        publickey : privateKey,

        publicMethod : function () {

            return privateMethod();

        }

    }


})();


console.log(module.publicMethod()); // ?

console.log(module.publicMethod()); // ?

console.log(module.publickey);          // ?


12번. 다음을 실행하면 결과는  참인가 거짓인가 ?    (객체 참조)

var items = new Array('one','two');

var itemsRef = items;

items.push('three');


alert (items.length == itemsRef.length);  // ??


13번. 다음을 실행하면 결과는  참인가 거짓인가 ?   (객체 참조) 

var items = new Array('one','two');

var itemsRef = items;

items = new Array("new");


alert (items == itemsRef); // ??


14번. 다음을 실행하면 결과는  참인가 거짓인가 ?   (문자열 과  참조) 

var item = "test";

var itemRef = item;

item += "ing";

alert(item == itemRef);  // ??


15번. 다음을 실행하면 결과는  참인가 거짓인가 ?   (스코프) 

var foo = "test"

if(true){

	var foo = "new test";

}

alert (foo == "new test");  // ??

function test(){

	var foo = "old test";

}

test();

alert( foo == "new test");  // ??


16번. 다음을 실행하면 결과는  참인가 거짓인가 ?     (커링) 

function addGenerator( num ) {

	return function ( toAdd) {

		return num + toAdd

	};

}

var addFive = addGenerator ( 5 );

alert (addFive ( 4 ) == 9 );


17번. 다음을 실행하면  thanks for your  다음에 어떤 단어가 출력되겠는가?     (클로저, 유효범위 )

var obj = document.getElementById("input1");

var items = ["click", "keypress"];

for(var i = 0; i < items.length; i++){

	(function(){

		obj[ "on" + items[i] ] = function(){

		  console.info("thanks for your " + items[i]);   // ??

		};

	})();

}


18번. 다음을 실행하면 결과는  참인가 거짓인가 ?   (컨텍스트)

var obj = {

	yes : function(){

		this.val = true;

	},

	no: function(){

		this.val = false;

	}

};

alert(obj.val != null);   // ??

obj.yes();

alert(obj.val == true);  // ??


window.no = obj.no;

window.no();

alert(obj.val == false);  // ??


19번. 다음을 실행하면 결과는  참인가 거짓인가 ?  (객체, Privileged 메소드)

function User ( name, age ) {

	var year = (new Date()).getFullYear() - age;

	this.getYearBorn = function(){

		return year;

	}

}


var user = new User('bob', 42);

alert(user.year == 42);  // ??


20번. 다음을 실행하면 결과는  참인가 거짓인가 ?  (프로토타입)

function Person(name) {

    this.name = name || "brad"; 

}


Person.prototype.getName = function(){

    return this.name;

};


function Korean(name){}

Korean.prototype = new Person();


var kor1 = new Korean();

console.log(kor1.getName() == "brad");  


var kor2 = new Korean("john");

console.log(kor2.getName() == "john");  



프로 자바스크립트 테크닉 (http://www.yes24.com/24/goods/3044388) 

인사이드 자바스크립트(http://www.yes24.com/24/Goods/11781589?Acode=101) 


Comments