2018/01/12 面試題目

筆試

  1. nullundefined 的分別。
  2. 何謂原型(prototype)與原型鏈?
var y = 1;
if ( foo() )
{
    y += typeof(foo());
}
console.log(y);
// 請問會出現什麼?
  1. 請問以下程式會出現什麼?
var salary = "1000quot;;
(function(){
    console.log("I have " + salary);
    var salary = "5000quot;;
    console.log("Now got " + salary);
}());
// 請問會出現什麼?
  1. 請問以下程式會出現什麼?
console.log(typeof(null));
console.log(typeof({}));
console.log(typeof([]));
console.log(typeof(undefined));
// 請問將顯示什麼?
  1. 請問點選第一個 node 與第三個 node 會顯示什麼?
for( var i = 0 ; i <= 10 ; i++ )
{
    node[i].addEventListener("click",function()
    {
        alert("You clicked " + i);
    });
}
// 請問點選第一個 node 與第三個 node 會顯示什麼?

面試

只記得有被有沒有用過 rails 的 ORM,我答不出來。

好像還有被問到給 API 然後用它渲染?前公司學到的就是 API 渲染、還有用 Vue 了。

然後因為要招的是 Golang 的全端、加上前端已經有人了,覺得錄取機率不大……


我筆試的答案

  1. null 是宣告了狀態但沒有數值、而 undefined 則是從頭到尾都沒有定義。
  2. 我不知道所以沒寫。
  3. 1object
  4. I have 1000$ , Now got 5000$,因為立即執行函式會先讀取全域變數 1000$ 再讀取區域變數 5000$
  5. Object, Object, Array, undefined
  6. You clicked 0, You clicked 3

反省

  1. 看了些資料,感覺差不多。參考資料: 1.1. What is the difference between null and undefined in JavaScript? 1.2. javascript中如何判断空值null與undefined 1.3. undefined与null的区别 1.4. undefined 和 null 的差別 1.5. MDN 的 nullundefined
  2. 以後再寫寫我的看法與結論?
  3. Error: foo is not defined:也許我看錯了。
  4. I have undefined, Now got 5000$:我忘記了提昇的概念:它會讓所有 function 放到最上面執行,但針對變數就不會。這個程式與以下程式碼一樣:
var salary = "1000quot;;
function foo(){
    console.log("I have " + salary);
    var salary = "5000quot;;
    console.log("Now got " + salary);
};
foo();
  1. object, object, object, undefined:陣列也是物件。
  2. 還來不及想怎麼測……
  3. 關於面試的 ORM:ORM 的意思是 Object-Relational Mapping,也就是用物件導向的想法/方法寫資料庫存取。其實 rails 裡面就有這個概念,稱作 Active Record。請參考 iHower 與 Ruby on Rails Guides ( English中文 都有 )

20180516 增筆:2. 呃,foo() 本來不就是沒有被定義嗎。