单项选择题
[typeof null, null instanceof Object]的运行结果是?
我的答案是:[‘object’, true]
正确答案是: [‘object’, false]
以下代码的运行结果是?
1
2
3
4
5
6
7
8
9var name = 'World!';
(function() {
if (typeof name === 'undefined') {
var name = 'Jack';
console.log('Goodbye ' + name);
} else {
console.log('Hello ' + name);
}
})();正确答案是:Goodbye Jack
解析:闭包内存在
var name
导致变量提升,相当于 var name; if (typeof …以下代码的运行结果是?
1
2
3
4
5var two = 0.2;
var one = 0.1;
var eight = 0.8;
var six = 0.6;
[two - one == one, eight - six == two];我的答案是:other
正确答案是: [true, false]
解析:导致原因是计算机存储浮点数采用 IEEE 754标准,解决办法是浮点数先转成整数计算后再转成浮点数。见:https://blog.csdn.net/weixin_47450807/article/details/123195174
以下代码的运行结果是?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16function showCase(value) {
switch(value) {
case 'A':
console.log('Case A');
break;
case 'B':
console.log('Case B');
break;
case undefined:
console.log('undefined');
break;
default:
console.log('Do not know!');
}
}
showCase(new String('A'))正确答案是:Do not know!
以下代码的运行结果是?
1
2
3
4
5
6
7
8
9
10
11function isOdd(num) {
return num % 2 == 1;
}
function isEven(num) {
return num % 2 == 0;
}
function isSame(num) {
return isEven(num) || isOdd(num);
}
var values = [7, 4, '13', -9, Infinity];
values.map(isSame);我的答案是:[true, true, true, true, false]
正确答案是:[true, true, true, false, false]
下面代码片段运行结果是?
1
2
3parseInt(3, 8);
parseInt(3, 2);
parseInt(3, 0);正确答案是:3、NaN、3
解析:parseInt的第二个参数是将第一个参数作为多少进制来解析,将第一个参数转换成十进制。
[] == [] 运行结果是?
正确答案是:false
解析:新建的对象不会相等,引用不同
下面代码片段运行结果是?
1
2'5' + 3
'5' - 3正确答案是:53, 2
下面代码片段运行结果是?
1
[1 < 2 < 3, 3 < 2 < 1]
正确答案是:[true, true]
Math.ceil(-3.14)的结果是?
正确答案是:-3
下面关于数组的描述正确的是?
A: 数组的 length 既可以获取,也可以修改
B: 调用 pop 方法,不会修改原数组中的值
C: shift() 方法的返回值是新数组的长度
D: 调用 concat() 方法,会修改原数组的值正确答案是:A
下面程序中 alert 按顺序分别弹出什么?
1
2
3
4
5
6
7
8
9var a = 10;
function test() {
a = 100;
alert(a);
alert(this.a);
var a;
alert(a);
}
test();正确答案是:100、10、100
请选择结果为真的选项
A: null == undefined
B: null === undefined
C: undefined == false
D: NaN == NaN
正确答案是:A
下面的描述不正确的是?
A: arguments 中保存了实际传入函数内的所有参数
B: return 只能在函数内部使用
C: setInterval(fn1, 1000)只会调用一次 fn1
D: Date 对象的 getMonth() 获取到的值比实际月份小 1
正确答案是:C
alert(“12”>”9”)的运行结果正确的是?
正确答案是:false
[1,2,3,4].join(‘0’).split(‘’)的执行结果是?
正确答案是:[“1”, “0”, “2”, “0”, “3”, “0”, “4”]
[,,,].join(‘,’)输出结果是?
我的答案是:”undefined,undefined,undefined,undefined”
正确答案是:”,,”
解析:[,,,] => [empty × 3]
以下代码运行结果是?
1
2
3
4function foo() {}
var oldName = foo.name;
foo.name = 'bar';
console.log([oldName, foo.name])我的答案是:error
正确答案是:[‘foo’, ‘foo’]
以下代码的运行结果是?
1
2
3
4var a = [1,2,3],
b = [1,2,3],
c = [1,2,4];
console.log(a == b, a === b, a > c, a < c)正确答案是:false, false, false, true
解析:新建对象不会相等,但是这里 a < c 不清楚原因
以下代码的运行结果是?
1
2
3
4
5(function() {
var x = y = 1;
})();
console.log(y);
console.log(x);正确答案是:1, error
填空题
HTML5 中,给
<script>
添加()可以使该脚本使用异步加载方式加载。defer 或 async 属性
HTML5 中,用来指定编码的语句是:()
<meta charset="UTF-8" />
HTML5 中,读取文件的接口是:()
<input type="file">
请写出选择 form 表单中所有被禁用的元素的 CSS 选择器
form [disabled]
Javascript 中,用来实现继承和共享属性的有限对象链是()
propertype
问答题
常见的浏览器内核有哪些?
webkit内核、IE内核、Safari内核
什么是响应式设计?响应式设计的基本原理是什么?如何兼容较低版本的IE?
响应式设计即通过一套代码兼容各种不同设备的浏览器访问。目前主要的方式有:百分比布局、媒体查询、栅格布局、流式布局等。
基本原理是通过媒体查询或者响应式尺寸单位(rem、vw/vh等)来使得界面元素动态改变大小
对应较低版本的IE,可通过css media等第三方库兼容css3媒体查询,使用浮动或者table布局等方式兼容。
已知 ID 的 input 输入框,希望获取这个输入框的输入值,怎么做?(不使用第三方框架)
document.getElementById(‘input输入框的ID’).value
请描述一下 cookies、sessionStorage 和 localStorage 的区别
解释下 JavaScript 中 this 是如何工作的?
- 顶层代码中 this 指向 window 对象
- 函数中 this 指向函数的调用对象
- 可通过 apply、call、bind调整函数中的this指向
本文链接: http://www.ionluo.cn/blog/posts/17ed2530.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!