0%

法國前端初級測驗

人總是在某種方式的評估下,才能清楚地知道自己的能耐。

法國有不少人力派遣公司,因為法國聘人程序繁瑣,徵人又需投入大量資源人力,所以越來越多公司採用人力派遣所派遣過來的工程師,來開發公司的專案。

此測驗是法國某大人力派遣公司,對應徵者所做的線上測驗,進入測驗網頁後,須依規定的時間作答,時間到會自動前往下一題,無法回頭修改答案。

以下是本人測驗之後,重新再花時間整理出來的,包含整理時「自己認為」的正確答案,如對答案有意見,歡迎提示給予修正建議,感謝先。

這個測驗總共給約 55 分鐘。

1/21

需要在<a>標籤加上什麼屬性讓連結可以另開分頁?

  • target=”_self”
  • href=”#”
  • target=”_parent”
  • target=”_blank”

2/21

實做findLargest(numbers)函式。
將回傳findLargest(numbers)numbers 陣列中的最大整數。 numbers是一個整數陣列,至少包含一個元素。

1
2
3
4
5
6
7
8
9
10
11
function findLargestnumbers{
let max = arr[0];
for(let i = 0 ; i < arr.length; i++){
if(max < arr[i]){
max = arr[i];
}
}
return max;
}

findLargest([1, -28, 88, 200, 7])

範例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// 實作 arr.max()
Array.prototype.max = function () {
var max = this[0];
this.forEach(function (ele, index, arr) {
if (ele > max) {
max = ele;
}
});
return max;
};
var arr = [1, 45, 23, 3, 6, 2, 7, 234, 56];
arr.max(); // 234

/*******************************/
// 取最大值函式
function max(arr) {
var max = arr[0];
arr.forEach(function (ele, index, arr) {
if (ele > max) {
max = ele;
}
});
return max;
}
var arr = [1, 45, 23, 3, 6, 2, 7, 234, 56];
max(arr); // 234
/*******************************/
// 取最小值函式
function min(arr) {
var min = arr[0];
arr.forEach(function (ele, index, arr) {
if (ele < min) {
min = ele;
}
});
return min;
}
var arr = [1, 45, 23, 3, 6, 2, 7, 234, 56];
min(arr); // 1

參考出處:JavaScript 學習筆記之取陣列中最大值和最小值 | 程式前沿

3/21

JavaScript "2" === 2; 會回傳以下哪個?

  • null
  • true
  • false
  • undefined

4/21

Javascript 頁面加載完成後,可以使用哪個事件執行操作?

  • oncomplete
  • onfinished
  • onload
  • onupload
  • oninit

5/21

哪個 HTML 標記用於定義<table>表格標題單元格?

  • th
  • tr
  • tt
  • td

6/21

在 JavaScript 中,以下哪些語句可以退出循環?

  • quit();
  • break;
  • exit;
  • i = 99999999;

7/21

在 JavaScript 中,如何聲明一個變數?

  • var x = 7;
  • x := 7;
  • int x = 7;
  • def x = 7;

8/21

在 HTML 中,應如何編寫字符<(小於)以防止將其視為打開標籤< >?

  • &lt;
  • %60
  • \<

9/21

在 CSS 中,選擇 ID 前綴是使用哪個符號?
#

10/21

哪一個是foo.length的值

1
2
3
var foo = [];
foo.push(1);
foo.push(2);
  • 3
  • 2
  • 1
  • 0
  • null

11/21

寫出average(table)函式,該函式必須回傳作為參數給的table的平均值。table是已定義的陣列,並且僅包含數字。
如果table為空,則averge必須回傳0

1
2
3
4
5
6
7
8
function average(table) {
let sum = 0;
if (table.length === 0) return 0;
for (let i = 0; i < table.length; i++) {
sum += table[i];
}
return sum / table.length;
}

12/21

1
2
3
4
5
6
7
var myJson = {
cities: [
{ name: 'Paris', pop: 2 },
{ name: 'London', pop: 8 },
{ name: 'New York', pop: 9 },
],
};

以下哪一個的結果是2

  • myJson -> cities -> Laos -> pop
  • myJson.cities.['Paris'].[pop]
  • myJson.cities[0].pop
  • myJson.cities.Paris.pop

13/21

在 JavaScript 中,您使用什麼函式在控制台中顯示錯誤?

consol.log(); ??? 不確定對不對

14/21

在 CSS 中,如何選擇在<p>的元素中所有的<span>元素?

  • p.span
  • span p
  • p span
  • p > span
  • span < p

15/21

HTML <p>在 CSS 默認下屬於什麼元素?

  • true
  • inline
  • inline-block
  • none
  • block

16/21

請寫出此函式,如果a(i,j)函式的參數至少一個等於 1 或i,j的總和等於 1,回傳true
兩個參數皆為數字。
Par exemple:

1
2
3
4
5
6
7
8
9
`a(1,5)` return `true`
`a(2,3)` return `false`
`a(-3,4)` return `true`
```javascript
function a(i,j){
if(typeof i !== 'number' && typeof j !== 'number') return false;
if(i == 1 || j == 1 || i+j == 1) return true
return false
}

17/21

在以下範例,哪一個是 JQuer 的最佳選擇器?
答案只有一個

1
<div class="box" id="content"></div>
  • $('.content');
  • $('#content');
  • $('box');
  • $('#box');
  • $('content');
  • $('.box');

18/21

在 HTML 中,以下哪個答案對應於正確的元素層級結構?

  • <div> <p> <section> <span>
  • <section> <div> <p> <span>
  • <div> <p> <section> <span>
  • <div> <section> <span> <p>

19/21

你的同事把階乘factorial這個函式寫壞了,請把它修好。

Rappel : factorial(n) = 1 * 2 * 3 *... * n

1
2
3
4
5
6
7
8
9
10
11
12
13
function factorial(n) {
return n != 1 ? n * factorial(n - 1) : 1;
}
console.log(factorial(5));
console.log(factorial(4));

// 基本寫法
function factorialBase(n) {
if (n == 1) return 1;
return n * factorialBase(n - 1);
}
console.log(factorialBase(5));
console.log(factorialBase(4));

參考:Calculate factorial

20/21

JavaScript 是多序列語言嗎?

  • Faux 錯
  • Vrai 對

21/21

超市越來越配備自動收款機。 儘管大部分國家的消費者仍使用現金(包括鈔票和硬幣),但大多數收銀機僅接受銀行卡付款。
現金支付遇到的問題之一是貨幣兌換:如何以最佳方式製作給定的金額,也就是說,使用最少數量的硬幣和紙幣? 這是我們每個人每天都會遇到的問題,更不用說在自動付款站了。
在本練習中,請嘗試找到在特定情況下進行更改的最佳解決方案:當自動提款機僅包含==2 歐元硬幣==,==5 歐元紙鈔== 和 ==10 歐元紙鈔==。
為了簡化問題,我們將考慮所有這些硬幣和紙幣以==無限數量==提供。
以下是一些示範:

要退回的貨幣 可能的解決方式 優化後的解決方式
1 無解 無解
6 2 + 2 + 2 2 + 2 + 2
10 2 + 2 + 2 + 2 + 10
5 + 5
10
9007199254740991 10 *
900719925474098 +
5 + 2 * 3

金額由具有 3 個屬性的物件表示。
分別存儲 2 歐元硬幣,5 歐元鈔票和 10 歐元的鈔票數量,以two,five,ten為屬性。

例如第二個例子,如果我們從表中獲取 6 歐元,則應獲取物件:

1
2
3
4
5
{
two: 3, // 3 pièces de 2 euros
five: 0, // 0 pièces de 5 euros
ten: 0 // 0 pièces de 10 euros
}

寫出change(cash)函式,該函式需回傳一個物件,其中包含總和為s。 如果不可能進行更改(例如第一個例子),則回傳null
為了獲得最高分,您的解決方案必須盡可能使用「最小面額的硬幣和紙幣」
數據:0 <cash< 9007199254740991

1
2
3
4
5
6
7
8
9
10
11
12
function change(cash) {
return {
two: 0,
five: 0,
ten: 0,
};
}

console.log(change(1)); // null
console.log(change(42).ten); // 4
console.log(change(42).five); // 0
console.log(change(42).two); // 1

回答:20/20 找錢 - JS Bin
後記:最後ㄧ題似乎還有些問題,如果把範例中最後一個拿來測試,會有問題,且無法做到優化,也就是說如果尾數是 11,就可變成(51)+(23)。這部分得再好好想想才行。