前端笔试题B

数组去重:
js方式:

let arr = [1,2,3,4,5,5,6,6,4,9,3,2]
var res = []
for (var i = 0; i < arr.length; i++) {
	if (res.indexOf(arr[i]) === -1) {
		res.push(arr[i])		
	}
}

es6方式:

let arr = [1,2,3,4,5,5,6,6,4,9,3,2]
var res = [...new Set(arr)]


或者
let arr = [1,2,3,4,5,5,6,6,4,9,3,2]
var res = Array.from(new Set(arr)) 

考察冒泡排序;
js:

for方法
var arr = [3,4,2,8,4,4,22,2,5]
	for (var i = 0; i < arr.length; i++) {
		for (var j = 0; j < i+1; j++) {
			if (arr[i] < arr[j]) {
				let temp = arr[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
		}
	}
	
 for-in
var arr = [3,4,2,8,4,4,22,2,5]
	for (var i in arr) {
		for (var j in arr) {
			if (arr[i] < arr[j]) {
				let temp = arr[i];
				arr[i] = arr[j];
				arr[j] = temp;
			}
		}
	}

jQuery:没有找到明朗的方法,我待会再试

在这里插入代码片

由于我在代码中使用了 for in,面试官问到for in和for循环的区别:
1:for-in遍历的是对象的属性名称,for是对数组元素进行循环,不能引用于非数组对象
2:使用for循环比for in遍历的快
for of 和forEach 只会循环数组本身的元素
结论:不能一概而论,平时就使用for of forEach较好。

面试官让用jquery实现一次冒泡排序

简答题:get和post有什么区别:
1,get回退对浏览器无害,post对浏览器是有害的,回退会再次提交请求。
2,get会被浏览器主动缓存,而post不会,除非手动设置。
3,get的url有长度限制,post没有。
4,get请求参数会被完整保留在历史记录中,而post的参数不会。
5,get的参数是放在url中的,而post是放在request body中的。

问了我一个问题,直接赋值后,改动这个赋值后的值,会不会影响之前的值:答案是会的。

var a = {string1:  5};
	var b = a;
	b.string1 = 10
	console.log(a) //{string1: 10}  a 和 b 指向的是同一个原型,因此改动b 会影响 a。对象本身是引用类型,是浅拷贝,传递的是一个地址

如何改进这个问题:使用Object.assign()

let obj1 = {
	a: 0,
	b: {
		c: 0
	}
}
let obj2 = JSON.parse(JSON.stringify(obj1))

xhr(type, url, true) true是异步;false是同步

AMD: 适用于浏览器端的异步模块加载
Common.js: 适用于服务器端的同步模块加载

问我知不知道节流和防抖,用于什么场景

求n项和

在这里插入代码片

写一个倒计时,且可以暂停

 
timeOut () { this.clock = setInterval(() => { let that = this that.num-- console.log(that.num) }, 1000) }, pause() { clearInterval(this.clock) } }, mounted() { this.timeOut() }

旋转30deg,放大两倍

div {
		 width: 100px;
		  height: 100px;
		  background: black;		      
	  }
	  div:hover {
	      transform:rotate(30deg) scale(2);
	      -webkit-transform:rotate(30deg) scale(2);
	      -moz-transform:rotate(30deg) scale(2);
	      -o-transform:rotate(30deg) scale(2);
	      -ms-transform:rotate(30deg) scale(2);
	  }

你可能感兴趣的:(前端笔试题B)