1.用户传输文件,应属于下列OSI的哪—层处理
A.传输层
B.数据链路层
C.会话层
D.应用层
2.css中,下面那个选择器的优先级最高
A.div
B. li a
C.li:after
D.classname
3.以下关于script标签中defer和async错误的是
A.多个带async属性的标签,不能保证加载的顺序
B.多个带defer属性的标签,按照加载顺序执行
C.defer属性,加载后续文档的过程和js脚本的加载是并行进行的
D.async属性,后续文档的加载和执行与js脚本的加载和执行是并行进行的
4.当浏览器请求资源时,哪种情况服务器会返回200的状态码
A.携带标识(if-Modify-since和if-None-Match)向服务端发起请求,资源无更新
B浏览器无缓存,向服务器发起请求获取资源,资源未找到
C.浏览器无缓存,请求服务器资源,服务器无响应
D.浏览器有缓存,响应头中expires以及cache-control未过期
5.以下关于浏览器内核说法错误的是
A.每打开一个标签页,就相当于创建了一个独立的浏览器进程
B.创建Worker时,JS引擎向浏览器申请开—个子线程
C.浏览器渲染进程是单线程的
D.js引擎线程与GUI线程互斥
6.以下关于hash路由和history路由说法错误的是
A.使用hash模式时,改变hash值,不会重新加载页面
B.使用hash模式时,hash值会出现在URLI以及HTTP请求里面
C.使用history模式时,用户在输入一个URL时,服务器会接收这个请求,并解析这个URL
D.使用history模式时,刷新页面的时候,如果没有相应的路由或资源,就会刷出404来
7.下面哪些任务不属于事件循环机制里面的MacroTask(宏任务)
A.setTimeout
B.setlnterval
C.主线程代码
D.Promise
8.下面不属于小程序的生命周期函数的是
A.onLoad
B.onMounted
C.onReady
D.onUnload
9.下面代码的输出结果分别是
var a = 1;
(function ()) {
console.log(a);
a = 2;
console.log(window.a)
var a = 3;
console.log(a);
})()
A.2,3,1
B.1,2,3
C.2, undefined,3
D.undefined,1,3
10.下面代码哪个不能实现对数组var arr = [1,2,4,1,5,2]的去重操作?
A.const newArr = arr.filter((n, i) => { return arr.indexOf(n) === i })
B.const newArr = arr.forEach((n, i) => {return arr.indexOf(n) === i})
C.const newArr = arr.reduce((acc, n, i)= >{
return [].concat(acc,arr.indexOf(n)=== i ? n : []
})
D.const newArr = Array.from(new Set(arr))
11.请写出以下代码的运行结果,并分析原因。
(function(){
var x = y = 1;
})();
var z;
console.log(y);
console.log(z);
console.log(x);
12.输出以下打印结构,并分析执行过程
const promise = new Promise((resolve, reject) = >{
console.log(1);
setTimeout(() => {
console.log(" begin");
resolve("suss");
console.log("end");
},0);
console.log(2);
});
promise.then((data)=> {
console.log(data);
});
console.log(4);
13.请写出下面的代码的运行结果?并说明原因
function Foo() {
Foo.a = function() {
console.log(1)
}
this.a = function() {
console.log(2)
}
}
Foo.prototype.a = function) {
console.log(3)
}
Foo.a = function() {
console.log(4)
}
Foo.a();
let obj = new Foo();
obj.a();
Foo.a();
14.请实现一个将表单输入框输入的数字转换为千分位,要求如下-不能够借助框架,需要使用原生js
-输入框只输入整数数字
-将数字转化为千分位
-键盘输入时,需要实时转换
示例:
键盘在输入框输入1000,输入框需自动转换为1,000
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"><title>实现千分位转换</title>
<style>
.input {
width: 200px;
</style>
</head>
<body class="body">
<input class="input" id="input" />
<script>
补全你的代码
</script>
</body>
</html>
15.现有一函数parseUrlParam,其功能是解析网站url地址,并返回一个js对象urlObject
function parseUrlParam(url) {
//你的代码
return urlObject;
let url = 'http;/www.4399.com/?user=candidate&ld=43&ld=99&city=%E3%0D370Dr /OL37ouIoLu,
parseUrlParam(url)
/*结果顺序不要求
{ user: 'candidate',
id: [ 43,99 ], //重复出现的 key要组装成数组,能被转成数字的就转成数字类型
city: '广州',//中文需解码
enabled: true, //未指定值的key,约定为true
*/
16.给你一个字符串数组words,请你找出所有在words的每个字符串中都出现的共用字符(包括重复字符),并以数组形式返回。你可以按任意顺序返回答案,请按以上要求完成solution(words)函数。
示例1:
输入:words = [" bella" ,“label” ," roller"]
输出:[“e” ,“l”,“l”]
示例2:
输入:words = [“cool” ,“lock” ,“cook”]
输出:[“c”,“o”]