Page tree
Skip to end of metadata
Go to start of metadata

سوال مقدار x بعد از اجرای قطعه کد زیر چیست؟

var x = {a: 1}; 
function f(y){   
	y.a = 2; 
} 
f(x); 

 

سوال مقدار x بعد از اجرای قطعه کد زیر چیست؟

var x = {a: 1}; 
function f(y){   
	y = null; 
} 
f(x); 

 

سوال مقدار x بعد از اجرای قطعه کد زیر چیست؟

var x = 1, y = 2;  
function swap(a, b){   
	var tmp = b;   
	b = a;   
	a = tmp; 
} 
swap(x);

 

سوال خروجی کد زیر چیست؟

var x = 3; 
var foo = {   
	x: 2,   
	baz: {     
		x: 1,     
		bar: function() {       
			return this.x;     
		}   
	} 
}; 
var go = foo.baz.bar; 
console.log(go()); 
console.log(foo.baz.bar()); 

 

سوال خروجی کد زیر چیست؟

var foo = {   
	bar: function() { 
		return this.baz; 
	},   
	baz: 1 
}; 
 
(function(){   
	return typeof arguments[0](); 
})(foo.bar); 

 

شی‌ءگرایی در جاوا اسکریپت

سوال تابع سازنده‌ی زیر را در نظر بگیرید:

function Superclass(){   
	this.propertyOnSuper = 1; 
} 
Superclass.prototype.methodOnSuper = function(){};

هرگاه شیئی به صورت ()var obj = new SuperClass ایجاد شود، زنجیره‌ی prototype آن به صورت زیر خواهد بود:

تابع Subclass را به نحوی بنویسید که بتوان از آن به عنوان زیرکلاسِ Superclass استفاده کرد.

راهنمایی: وقتی به وسیله‌ی عملگر new شیئی با Subclass می‌سازیم، باید زنجیره prototype زیر را داشته باشد:

سوال خروجی کد زیر چیست؟

var s = "";
var x = {a: 1};
var y = Object.create(x);
y.b = 2;
for (var k in y) {
	s += k;
}
console.log(s);

closure

سوال یک تابع به اسم multipleGenerator بنویسید به طوری که وقتی با یک عدد x فراخوانی شود، تابعی برگرداند که در هر بار فراخوانی ضریب بعدی عدد x را برگرداند. مثلا:

var getNextMultiplesOfSix = multipleGenerator(6); 
getNextMultiplesOfSix(); // returns 6 
getNextMultiplesOfSix(); // returns 12 

سوال تابعی به اسم map بنویسید که یک اسم فیلد به عنوان ورودی دریافت کند و تابعی برگرداند که هرگاه با شیئی فراخوانی شود، آن فیلد از آن شیئ را برگرداند. مثلا:

var mapToId = map('id'); 
mapToId ({id: 1, name: 'Alireza'}); // must return 1

سوال تابعی به اسم applyBinaryFn بنویسید که یک تابع با دو ورودی را به عنوان ورودی بگیرد و آن را قابل فراخوانی با دو فراخوانی پی‌درپی کند. مثلا:

applyBinaryFn(someBinaryFn)(1)(2); // equivalent to someBinaryFn(1,2);

سوال خروجی کد زیر چیست؟

var functions = [];
for(var i=0; i<4; i++){
	functions.push(function(){
		console.log(i);
	});
}
functions.forEach(function(fn){
    fn();
});
for(var i=0; i<4; i++){
	functions[i]();
}

 

 

اگر سوالات بالا (و سوالات مشابه در این سطح) را به خوبی پاسخ می‌دهید،

بخش فرصت‌های شغلی ما را مشاهده کنید!

  • No labels