前端笔试题(五)

1.let a=1;let b=2;如何在不声明第三个变量的情况下,让a=2;b=1

  1. 第一种解法

    • a=a+b; => a=3

    • b=a-b; => b=1

    • a=a-b; => a=2

  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

你可能感兴趣的:(前端)