# 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.`=>(({}))`