web前端面试题(含答案)

一、填空题

1、JS中的数据类型有哪些  Number,Null,undefined,String,boolean,Array,Function,Object;(8种)

2、JS中强制类型转换为 number 类型的方法有:Number() parseInt() parseFloat()

3、创建一个子节点  createElement ,插入一个子节点  appendChild ,在已有元素之前插入节点  insertBefore ,删除子节点  removeChild

4、获取元素的第一个子节点  firstChild ,获取元素的最后一个子节点  lastChild ,上一个兄弟节点  previousSibling ,下一个兄弟节点  nextSibling

5、获取所有子节点  childNodes  ,获取父级节点  parentNode  

6、常用运算符有哪五大类  逻辑运算符,条件运算符,赋值运算符,比较运算符,算术运算符

7、下面代码执行结果依次为:  undefined,1 

var a = 1;

function fn1(a){alert(a); a = 2;}

fn1();

alert(a);

8、css常见布局单位有  px,% ,rem,em  (3种)

9、把字符串按照指定字符分割并返回数组的方法为:  splice();大写字母转小写字母的方法为:  toLowerCase() ;小写字母转大写字母的方法为: toUpperCase() ;查询字符在字符串中位置的方法  indexOf() ;返回指定位置字符串的方法  chatAt() 

10、在数组最前面插入一项的方法为:  unshift() ;删除数组最后一项的方法为: pop() ;在数组最后面插入一项的方法为: push();删除数组最前面一项的方法为: shift()  ;删除、添加、替换数组项的方法为:  splice() ;颠倒数组顺序的方法为: reverse() ;合并多个数组并返回新数组的方法  concat() 

11、有x=15,y=64,写出生成x到之间的随机数的方法:  Math.random()*49+15  。

12、JS中的多次执行的定时器为:  setInterval()  ,只执行一次的定时器为: setTimeout()  ,清除定时器的方法:  clearInterval(), clearTimeout()  

13、通过id名获取元素的方法:  document.getElementById() 

14、获取滚动条滚动高度的方法:  对象.onscroll = function(){console.log(this.scrollTop);}

15、JS中绑定事件的方法:   对象.on+事件名 = 事件处理函数  ;解除事件绑定的方法:   对象.on+事件名 = null 

16、JS获取焦点事件为:  onfocus()  ;失去焦点事件为:  onblur()  

17、对数字向上取整的方法:  Math.ceil()  ;向下取整的方法:  Math.floor()  ;四舍五入的方法:  Math.round()  。

18、表格元素中tbody、tr、td的含义分别为:  表格内容 表格的行表格的单元格

19、var arr=[{name:’张三’,age:25}],怎么读取数组中的“张三” : arr["0"].name

20、鼠标右键菜单事件:  对象.oncontextmenu(e){e.preventDefault()} 

21、字符串转换成数组的方法是  split()  

22、浮动可以使元素    (是或否)脱离文档流。

23、html5中新增标签有  <canvas><section><frame><footer><header>  (5种)

24、html5中input新增属性有   url,range,date,color,email,search   (5种)

25、css3中3D转换属性有   rotate(),matrix(),scale(),skew(),translate()  (5种)

26、css选择器中+是  相邻兄弟选择器  ,>是  子代选择器  ,~是  通用兄弟选择器 , ,是  群组选择器  ,空格是  后代选择器  

27、jq中显示隐藏的方法是  show(),hide()  

28、jq中添加样式方法是  attr()  

29、jq中删除样式方法是  removeAttr() 

30、jq中设置单个样式语法结构  $().css(‘属性名’,’属性值’)  多个样式语法结构   $().css({‘属性名’:’属性值’, ‘属性名’:’属性值’})   

二、根据要求写出对应代码

1、封装通过id获取元素的方法:(js方法)

function getId(id){
		return document.getElementById(id);
}

2、获取当前日期(输出格式:年-月-日 星期 时:分:秒);(js方法)

function getTimes(date){
			var year = date.getFullYear();
			var month = date.getMonth()+1;
			var day = date.getDate();
			var week = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
			var hour = date.getHours();
			var minute = date.getMinutes();
			var second = date.getSeconds();
			
			month = month < 10 ? "0" + month : month;
			day = day < 10 ? "0" + day : day;
			hour = hour < 10 ? "0" + hour : hour;
			minute = minute < 10 ? "0" + minute : minute;
			second = second < 10 ? "0" + second : second;
			
			return year+"-"+month+"-"+day+" "+week[date.getDay()]+" "+hour+":"+minute+":"+second;
		}
		console.log(getTimes(new Date()));

3、把数组 arr=[1,23,12,7,3,28,2,14]按正序的方式排序;

// sort
var arr = [12,4,52,2,14,28,7];
function func(a,b){
	return a-b;
}
console.log(arr.sort(func));

// 选择排序
function select(arr){
	for (var i = 0;i<arr.length-1;i++) {
	    for (var j = j + 1;j < arr.length;j++) {
			if(arr[i] > arr[j]){
				var temp = arr[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
		}
	}
	return arr;
}
console.log(select(arr));

// 冒泡排序
function third(arr){
	for (var i = 0;i<arr.length-1;i++) {
		for (var j = 0;j<arr.length-1-i;j++) {
			if(arr[j] > arr[j+1]){
				var temp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = temp;
			}
		}
	}
	return arr;
}
console.log(third(arr));

4、写出清除浮动的影响四种方法

1、	给父级元素加高
2、	在浮动末尾加一个div,设置clear:both
3、	给父级设置伪类after,zoom:
.clearfloat: after{ clear: both; overflow: hidden; display: block; current:””;height:0}
.clearfloat:{zoom:1}
4、给父级元素设置overflow:hidden

5、Css3中有几种渐变,分别是?

线性渐变:background-image: linear-gradient(red,green);
径向渐变:background-image: radial-gradient(red,pink);

6、实现点击按钮淡入淡出显示一个div盒子(jq方法)

   <style>
		.box {
			width: 200px;
			height: 200px;
			background-image: radial-gradient(red, pink);
		}
	</style>
	<script src="js/jquery-1.12.3.min.js"></script>
	</head>
	<body>
		<button class="btn">点击切换</button>
		<div class="box"></div>
	</body>
	<script>
		$(document).ready(function() {
			$('.btn').click(function() {
				$('.box').fadeToggle(3000)
			})
		})
	</script>

7、实现让一个200*200的div垂直水平居中

   <style>
		.box {
			width: 200px;
			height: 200px;
			background-color: skyblue;
			position: absolute;
			left:50%;
			top:50%;
			margin:-100px 0 0 -100px;
		}
	</style>
	<body>
			<div class="box"></div>
	</body>

8、实现一个距离10月1日以秒倒计时

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<p>距离2021年10月01日还有<span class="span"></span>秒</p>
	</body>
	<script>
		
		var span = document.getElementsByClassName("span")[0];
		var date = new Date();
		var date1 = new Date(2021,10,01,00,00,00);
		var second = (date1 - date) / 1000;
		function time(){
			second--;
			span.innerHTML = second;
		}
		time();
		setInterval(time,1000);
	</script>
	
</html>

9、使用css3中动画画一个W

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			.box1{
				width: 40px;
				height: 300px;
				margin: 300px auto 100px 150px;
				transform: rotate(-45deg);
				position: relative;
			}
			
			.box2{
				width: 40px;
				height: 300px;
				transform: rotate(90deg);
				position: absolute;
				left: 128px;
				top: 128px;
			}
			
			.box3{
				width: 40px;
				height: 300px;
				transform: rotate(0deg);
				position: absolute;
				left: 259px;
				top: 259px;
			}
			
			.box4{
				width: 40px;
				height: 300px;
				transform: rotate(90deg);
				position: absolute;
				left: 389px;
				top: 389px;
			}
			
			.circle{
				width: 25px;
				height: 25px;
				background-color: transparent;
				border-radius: 50%;
				border: green dotted 2px;
				position: absolute;
				left: 198px;
				top: 330px;
				animation: tranW 3s linear infinite;
			}
			
			@keyframes tranW{
				0%{
					margin-top: 0px;
					margin-left: 0px;
				}
				25%{
					margin-top: 200px;
					margin-left:200px;
				}
				50%{
					margin-top: 0px;
					margin-left:400px;
				}
				75%{
					margin-top: 200px;
					margin-left:570px;
				}
				100%{
					margin-top: -120px;
					margin-left:900px;
				}
			}
		</style>
	</head>
	<body>
				<div class="box1">
				<div class="box2"></div>
				<div class="box3"></div>
				<div class="box4"></div>
			</div>
			<div class="circle"></div>
	</body>
</html>

10、使用jq制作简易版计算器(+ - * / 清除)

<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>计算器</title>
	<style type="text/css">
		.div {
			border: green 1px;
			border-style: solid;
			width: 300px;
			text-align: center;
		}
	</style>
	
</head>
<body>
	<form>
		<div class="div">
			<div>第一个数:<input type="text" id="num1"></div>
			<div>第二个数:<input type="text" id="num2"></div>
			<div>
				<input type="button" value=" + " id="jia">
				<input type="button" value=" - " id="jian">
				<input type="button" value=" * " id="cheng">
				<input type="button" value=" / " id="chu"></div>
			<div>结果:<input type="text" id="reset" /></div>
		</div>
	</form>
</body>
<script src="js/jquery-1.12.3.min.js" type="text/JavaScript"></script>
<script>
	$(document).ready(function() {
		$("#jia").click(function() {
			var num1=parseFloat($("#num1").val());
			var num2=parseFloat($("#num2").val());
			$("#reset").val(num1+num2);
		});
		$("#jian").click(function() {
			var num1=parseFloat($("#num1").val());
			var num2=parseFloat($("#num2").val());
			$("#reset").val(num1-num2);
		});
		$("#cheng").click(function() {
			var num1=parseFloat($("#num1").val());
			var num2=parseFloat($("#num2").val());
			$("#reset").val(num1*num2);
		});
		$("#chu").click(function() {
			var num1=parseFloat($("#num1").val());
			var num2=parseFloat($("#num2").val());
			$("#reset").val(num1/num2);
		});
	});
</script>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_45990765/article/details/120137365