1.let a=1;let b=2;如何在不声明第三个变量的情况下,让a=2;b=1
-
第一种解法
-
a=a+b; => a=3
-
b=a-b; => b=1
-
a=a-b; => a=2
-
-
第二种解法
-
利用ES6中的解构赋值:[a,b]=[b,a]
-
2.前端页面由哪三部分组成,他们分别的作用是什么
-
结构层(HTML)
-
作用:对网页内容的语义以及含义做出描述
-
-
表示层(CSS)
-
作用:对内容如何显示做一定的控制
-
-
行为层(JS)
-
作用:控制用户做出一个事件改如何显示
-
3.alert(undefined==null);alert(undefined===null)
这里考察的是==和===的区别,但是同时也涉及到了JS官方文档
-
alert(undefined==null) 输出是true
-
==会进行隐式类型转换
-
但是JS的官方文档明确表示,undefined和null相比较的时候不存在隐式类型转换
-
官方直接规定undefined==null输出是true,因为他俩代表的都是无效的值
-
-
alert(undefined===null) 输出是false
-
===是判断值的数据类型是否相等
-
4.css中单位有哪些,并简述其计算方法
-
pt:设置字体大小的(蓝湖上的,基本上不用,如果看到pt,直接转成px)
-
px:是一种虚拟长度单位
-
rpx:较于手机端使用
-
rem:相当于当前根元素的font-size的大小,在某一些地方可以自适应
-
em:相当于当前元素的font-size的大小
-
vh:相对于窗口的高度
-
vm:相对于视窗的尺寸
5.var a=[21,22,23,1,2,3,21,1,2]实现去除掉重复元素
这里举了两个常用的方法
双重for循环
var a=[21,22,23,1,2,3,21,1,2]; for (let i = 0; i < a.length; i++) { for (let j = i + 1; j < a.length; j++) { if (a[i] === a[j]) { a.splice(j, 1) j-- } } } console.log(a)
set去重
var a=[21,22,23,1,2,3,21,1,2] var uniqe=[...new Set(a)]; console.log(uniqe)
6.手写一段深拷贝的方法
function(a(){ JSON.parse(JSON.stringify(obj)) })
var obj1={a:1,b:5,c:3} var obj2=JSON.parse(JSON.stringify(obj1)) obj2.b=2 console.log(obj1.b)//5 console.log(obj2.b)//2