---
# System prepended metadata

title: JavaScript 面试题

---

# JavaScript 面试题
    
1. 如果比较值不相同，下列哪些返回true？
A.`<>`
B.`~`
C.`==!`
D.`!==`

2. foreach 与 for的区别哪些说法是正确的?
A. 只有 for 使用 callback函数.
B. for 更加通用通用，但 forEach 只能用于array.
C. 只有 forEach 允许设置你自己的iterator
D. ForEach 更加通用通用，但 for 只能用于array.

3. 下列哪项代码创建了一个新的Person object，并命名为 student？
A. `var student = new Person();`
B. `var student = construct Person;`
C. `var student = Person();`
D. `var student = construct Person();`

4. 什么时候最后一行代码会打印在Console上?
```javascript=
let modal = document.querySelector('#result');
setTimeout(function(){
    modal.classList.remove('hidden);
}, 10000);
console.log('Results shown');
```
A.10秒钟后
B.HTTP请求收到返回结果后
C.10000秒后
D.立即

5. Function如何创建一个闭包?
A.任何时候值变化，它都会重新加载document
B.它返回一个引用给他的父作用域
C.它计算执行无需返回
D.他复制本地变量到全局作用域中

6. 下面代码的返回结果是？
```javascript=
var Storm = function () {};
Storm.prototype.precip = 'rain';
var WinterStorm = function () {};
WinterStorm.prototype = new Storm();
WinterStorm.prototype.precip = 'snow';
var bob = new WinterStorm();
console.log(bob.precip);
```
A.Strom()
B.undefined
C.'rain'
D.'snow'

7. `12:00:32`可以用下列哪项正则表达式匹配？
A.`/[0-9]{2,}:[0-9]{2,}:[0-9]{2,}/`
B.`/\d\d:\d\d:\d\d/`
C.`/[0-9]+:[0-9]+:[0-9]+/`
D.`/ : : /`

8. 下列代码的打印结果是？
`console.log(typeof(42))`
A.'float'
B.'value'
C.'number'
D.'integer'

9. 你正在处理一个错误，下列哪条语句为是正确的？
```javascript=
function addNumbers(x, y) {
  if (isNaN(x) || isNaN(y)) {
  // code here
  }
}
```
A.`exception('One or both parameters are not numbers')`
B.`catch('One or both parameters are not numbers')`
C.`error('One or both parameters are not numbers')`
D.`throw('One or both parameters are not numbers')`

10. 下列代码的打印结果是？
```javascript=
var a = ['dog', 'cat', 'hen'];
a[100] = 'fox';
console.log(a.length);
```
A.101
B.3
C.4
D.100

11. dessert.type的值在下列代码运行后为？
```javascript=
const dessert = { type: 'pie' };
dessert.type = 'pudding';
```
A. pie
B. 代码会抛出一个错误
C. pudding
D. undefined

12. 下列代码的运行结果为？
```javascript=
0 && hi
```
A. ReferenceError
B. True
C. 0
D. false

13. 下列class，你如何获得值42对于给定一个实例x？
```javascript=
class X {
  get Y() {
    return 42;
  }
}
```

A. x.get('Y')
B. X.Y
C. x.Y()
D. x.get().Y

14. 下列表达式的返回结果为？
```javascript=
[] == [];
```
A. True
B. undefined
C. `[]`
D. False

15. 对于使用箭头函数返回Object，下列哪项是错误。
A.`=>({})`
B.`=>{}`
C.`=>{return {};}`
D.`=>(({}))`