$İnterview

by mtambulut

JavaScript

var half = function(x){
  return x/2
}

var halfES6 = (x)=>{
  return x/2
}

var halfES6_2 = ( x => x/2 )


half(6);     //3
halfES6(8);  //4
halfES6_2(10); //5

/////////////////////////////////////
const a = 1
let b = 'foo'

// Not allowed!
// a = 2

// Ok!
b = 'bar'

if (true) {
  const a = 3
}

/*

const ve let ifadelerine bakalım. Normal JavaScript'te bu ifadeler yerine değişkenleri tanımlamak için varkullanılır. Aralarındaki temel fark const ve let ifadeleri yalnızca bulundukları blok için geçerlidir.

const bildiğimiz "CONSTANT" kelimesinin kısaltması, sabit yani tanımlandığı blokta kendisine yalnızca bir kere atama yapılabilir

let ifadesi değişkenler için uygundur. Yukarıdaki örnekte üst blokta tanımlanmış const "a" ifadesine bir kere atama yapılmış daha sonra başka bir değişiklik yapılınca buna izin verilmemiş. ama farklı bir blokta tekrar atama yapılabilmiştir.
*/

//ES5:
 function merhaba(){
    this.msj = 'Merhaba';
    this.selamver = function(adi){
       return this.msj + adi
    }.bind(this)
 }

 //ES6:
 function merhaba(){
    this.msj = 'Merhaba';
    this.selamver = (adi) =>{
       return this.msj + adi
    }
 }
 
 /*ES5 ile yazılan örnekte selamver fonksiyonu kendi üst bloğundaki msj 'a ulaşmak için bind edilmesi gerekirken; ES6 ile yazılan halinde, arrow function kullanılmış ve bind edilmesine gerek kalmadan msjdeğişkenine ulaşılmıştır*/
 
 /*
 
1) Yukarıdaki kod parçasına göre log çıktısı sırasıyla ne olur?
true,true,true
true,false,true
true,false,false
false,false,true

2) Yukarıdaki kod parçası çalıştırıldığında numbers son değeri ne olur?
[1, 2, 3, 4, 5]
[4, -1, 0]
undefined
[2, 3]

3) Yukarıdaki kod parçasına göre (1) numaralı kısımda `this` nedir? Yorumlayınız.
Yanıtınız


4) Yukarıdaki kod parçasına göre `this` nedir? Yorumlayınız.
Yanıtınız

5) NaN nedir? Bir örnekle açıklayınız.
Yanıtınız

6) JavaScript dilinde bracket notasyonu ne zaman tercih edilir? Açıklayınız.
Yanıtınız


7) Yukarıdaki kod parçasına göre (1) numaralı...