月考考试题

⼀、填空题(25)


1. flex布局如何设置主轴的排列⽅式       justify-content:
2. 使⽤媒体查询,写出屏幕宽度⼤于300的样式   @media  screen and  (min-width:300px){}
3. JS是单线程还是多线程   单线程
4. 是⽤css设置宽度为100%-200px       width:cals(100% - 200px)
5. 如何根据id获取DOM对象      document.getElementById(“id”)
6. 根据下列代码,写出下列程序的打印值     4个5 

   for (var i = 1; i < 5; i++) { 
   
   	setTimeout(()=>{ 
   
    	console.log(i); 
   
   	}) 
   
   }
7. 根据下列代码写出打印值   张三  李四  张三 
  var name = '张三'
   var obj = {
       name: "李四",
       sayName: () => {
       console.log(this.name)
    	},
    }
    function sayName2() {
    	console.log(this.name)
    }
    obj.sayName2 = sayName2
    sayName2()
    obj.sayName2()
    obj.sayName()
8. 获取对象中所有的key值的⽅法   reflect.ownkeys() 
9. 修改函数的this指向的三种⽅法     call()     apply()     bind()  
10. promise的三种状态是什么    pending     fulfilled      rejected
11. 请按照顺序填写下列代码的输出   1, 2, 5, 3
const promise = new Promise((resolve, reject) => { 
     console.log(1); 
     resolve(3); 
     console.log(2); 
     reject(4) 
}) 
promise.then((res) => { 
 	console.log(res); 
}).catch(err=>{ 
 	console.log(err); 
}) 
console.log(5); 

⼆、简答题(40)
 

(⼀) 请列出HTML的标签,⾄少10个。(5分)
<html>  <head>  <meta>  <title>  <body>  <script>  <header> <aside>  <p>  <nav>  <div>  <footer>
(⼆) 简述块级元素、⾏内元素,⾏内块元素各⾃的特点,以及各 个标签之间如何转换。(5分)
块:
有默认的宽高,宽是父元素的100%,高度是内容所撑起来的高度
宽高可以设置
独占一行
可以容纳任意的元素(h/p元素不能容纳块状元素)
可以设置外边距和内边距的
行:
有默认的宽高,宽高是内容所撑起来的
宽高设置是无用的
相邻的行内元素或者行内块元素在同一行上显示
只可以容纳行内元素与内容
水平方向上的外边距和内边距可以设置,垂直方向设置无用
块转行内:display: inline;
行内转块:display: block;
块、行内元素转换为行内块: display:  inline-block;

(三) 前端中常⽤的单位有哪些,分别是如何换算的。(5分)
px:     像素  绝对定位
em:     相对于自身
rem:    相对于根标签
vh:     视图的高度
vw:     视图的宽度

(四) HTTP请求常⻅的状态码有哪些,什么含义,⾄少5个。(5 分)
200:   请求成功
500:   请求失败
404:   请求不到页面
302:   重定向
400:   语法报错

(五) CSS中常⽤的定位有哪些,分别有什么特点。(5分)
static 静态定位  不脱标占位置  不可以偏移
relative  相对定位 不脱标占位置 可以偏移
absolute  决对定位  脱标不占位置  可以偏移
fixed   固定定位  脱标布置位置  可以偏移

(六) 请简述普通函数和箭头函数的区别。(5分)
1.参数只有一个时,可以省略小括号
2.return后面只有一条语句时,可以省略return和{}
3.箭头函数没有arguments内置函数
4.箭头函数不能构造函数
5.箭头函数没有prototype属性
6.call()和apply()能调用箭头函数,但不能改变this指向
7.箭头函数的this指向父作用域(定义它的地方)

(七) 请简述let、const、var的区别(5分)
let var  在全局定义的变量是全局变量,在局部定义的变量是局部变量
let:声明的变量不能提升,不能重复,只在当前作用域有效,会产生暂时性的死区
const:必须赋初始值,是常量,声明的变量不能提升,不能重复,只在当前作用域有效,会产生暂时性的死区

(⼋) 使⽤flex布局实现⽔品+垂直居中,写出容器样式box,⼦集样式名为item(5分)

.box{
    display:flex;
    width:600px;
    height:600px;
    border:1px solid blue;
    justify-content:center;
    align-items:center;
}
.item{
    width:200px;
    height:200px;
    background-color:red;
}


三、编程题(35)


(⼀) 给定指定数组list[33,2,18,3,7,5,6,19,2,5,36,24,77]。
1.选择合适的数组api,获取到数组中所有的偶数,并将这些偶数除以2打印.(5分)

console.log(list.foreach((item)=>{
    if(item%2==0){
        return item/2
    }
}))
2.对数组进⾏冒泡排序,实现从⼤到⼩排序。(5分) 
console.log(list.sort((a,b)=>{
   return b-a
}))
3.选择合适的数组api,对数据进⾏求和。(5分) 
console.log(list.reduce((total,item)=>{

	return total+item

},0))
(⼆) 现有给定的所有的⻆⾊数组为roleList,⽤户已选择的⻆⾊数组为selectedRoleList 
const roleList = [{ 

 id: 1, 

 name: '⽼板' 

}, { 

 id: 2, 

 name: '经理' 

}, { 

 id: 3, 

 name: '运营总监' 

}, { 

 id: 4, 

 name: 'CEO' 

}, { 

 id: 5, 

 name: '销售' 

}, { 

 id: 6, 

 name: '实施' 

}, { 

 id: 7, 

 name: '程序员' 

}, { 

 id: 8, 

 name: 'UI⼯程师' 

}, { 

 id: 9, 

 name: '产品经理' 

}];


// ⽤户已选择的数组 
const selectedRoleList = [{ 

 id: 2, 

 name: '经理' 

}, { 

 id: 3, 

 name: '运营总监' 

}, { 

 id: 6, 

 name: '实施' 

}, { 

 id: 7, 

 name: '程序员' 

}, { 

 id: 9, 

 name: '产品经理' 

}]; 
1.使⽤合适的数组api,获取已经选择数组的id列表(列表的每⼀项只有 id),即[2,3,6,7,9]。(5分)
console.log(selectedRoleList.map(item => item.id));
2.使⽤合适的数组api,获取所有未选中的⽤户列表。(5分) 
console.log(roleList.filter(item => !selectedRoleList.some(selectedItem => selectedItem.id == item.id)));
(三) 基于以下数据 
const list = [ 

 {id:3,name:"张三丰"}, 

 {id:5,name:"张⽆忌"}, 

 {id:13,name:"杨逍"}, 

 {id:33,name:"殷天正"}, 

 {id:12,name:"赵敏"}, 

 {id:97,name:"周芷若"}, 
1.实现找到所有姓杨的⼈;(5分) 
console.log(list.filter((item)=>{

	return item.name.startsWith(“杨”)

}))
2.找到所有包含天这个字的⼈;(5分)
console.log(list.filter((item)=>{

	return item.name.includes(“天”)

}))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值