美文网首页
2022-02-22前端试题

2022-02-22前端试题

作者: 半澄碧落 | 来源:发表于2022-02-22 11:59 被阅读0次

    1、js的数据类型有哪些?
    数据类型分为基本数据类型,复杂数据类型
    基本数据类型:Boolean(布尔型),String(字符串型),Number(数字型),Nul(空型),Undefined(未定义型)
    复杂数据类型: Object(对象)

    2、js中变量的三种定义方式,有什么区别
    const: 设置常量
    var:设置变量
    let:块几作用于,设为变量

    3、const obj = { name:’jack’ },这样定义一个obj的变量,那么能改变obj.name 吗?
    可以, obj等于一个对象,对象是复杂类型,变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的(即总是指向另一个固定的地址),至于它指向的数据结构是不是可变的,就完全不能控制了。

    4.判断是否是数组
    var obj = [];
    Arrary.isArray(obj) IE8及以下不支持
    Object.prototype.toString.call(obj) === '[object Array]'
    obj instanceof Array
    obj.constructor === Array

    5、介绍一下promise
    promise是用来表示一个异步操作的完成状态与结果
    promise有待处理,接受,拒绝3种状态
    promise的优缺点:
    promise可以链式调用控制事件的执行顺序;可以使用catch捕捉到错误信息;可以避免回调地域

    6、浅拷贝和深拷贝有什么区别,怎么去深拷贝
    深拷贝:JSON.parse(JSON.stringfy(X));递归实现
    浅拷贝:Object.assign();直接赋值;循环第一层

    深拷贝递归地复制新对象中的所有值或属性,而浅拷贝只复制引用。
    在深拷贝中,新对象中的更改不会影响原始对象,而在浅拷贝中,新对象中的更改,原始对象中也会跟着改。
    在深拷贝中,原始对象不与新对象共享相同的属性,而在浅拷贝中,它们具有相同的属性。
    
     json.parse(json,stringfy())的弊端:深复制之后时间对象会变成字符串;正则对象,error对象会变成空对象;函数和undefined会丢失;
    属性值为NAN的为变为null;
    

    7、怎么删除数组第一个值
    原数组长度改变:shift(), splice(start, length)
    原数组长度不变: slice(start, end)

    8、vue生命周期(组件)、keep-alive的用法

    beforeCreate
    created
    beforeMounte
    mounted
    beforeUpdate
    updated
    beforeDestroy
    destrored
    
    当页面加入keep-alive缓存之后,进入A缓存页面 --> B不缓存页面 --> 再次进入A缓存页面
    beforeCreate
    created
    beforeMounte                    A  
    mounted
    activated
    deactivated
     ===》
    beforeCreate
    created
    beforeMounte
    mounted                            B
    beforeUpdate
    updated
    beforeDestroy
    destrored
    ===》
    activated
    deactivated                        A
    

    9、两个div,A包含B,怎么做水平垂直居中,用flex布局怎么做
    使用line-height
    使用position定位

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="UTF-8">
        <title>测试</title>
        <style>
            .className1 {
                width: 700px;
                height: 700px;
                margin: 0 auto;
                background-color: red;
                position: relative;
            }
            /* .className2 {
                width: 600px;
                height: 400px;
                position: absolute;
                left: 50%;
                top: 50%;
                transform: translate(-50%, -50%);
                background-color: rgb(98, 0, 255);
            } */
            
            .className2 {
                width: 600px;
                height: 400px;
                position: absolute;
                left: 0;
                top: 0;
                right: 0;
                bottom: 0;
                margin: auto;   /* 有了这个就自动居中了 */
                background-color: rgb(0, 255, 179);
            }
        </style>
    </head>
    
    <body>
        <div class="className1">
            <div class="className2"></div>
        </div>
    </body>
    
    </html>
    

    10、组件之间通信该怎么做
    props传值
    vuex 全局传值

    11、v-for和v-if能一起使用么

    v-for和v-if不能一起使用,因为v-for会比v-if先执行。一个数组循环,它不会先执行v-if过滤数据,再循环,而是先执行循环再过滤数据,影响渲染速度
    

    12、css3有哪些新特性
    圆角(border-radius)
    阴影(box-shadow)
    线性渐变(linear-gradient)
    2D转换(trasform)=>缩放(scale),倾斜(skew),平移(translate),旋转(rotate),matrix(旋转,缩放,平移,倾斜,n,n)
    3D转换
    背景(background-image,background-size,background-repeat, background-origin,background-position)
    动画(@keyframes,animation)
    过度(transition)
    多列(column-count)
    多媒体查询(@media)

    13、盒模型(box-sizing)
    IE盒模型(border-box):宽包括content,padding,border
    W3C的标准盒模型(content-box):宽包括content

    14、css选择符
    id选择器(#myId)
    类选择器(.myId)
    伪类选择器(a:hover)
    伪元素选择器(::before ::after)
    标签选择器(p,div)
    属性选择器(input[type="submit"])
    相邻子元素选择器(ul>li)
    相邻兄弟选择器(p+div)
    兄弟选择器(li~a)
    通配符选择器(*)

    15、GET和POST的区别:
    简单来说:GET产生一个TCP数据包,POST产生两个TCP数据包
    严格的说:对于GET方式的请求,游览器会把http header和data一并发送出去,服务器响应200(返回数据);
    而对于POST请求。游览器先发送header,服务器响应100 continue,游览器再发送data,服务器响应200 ok(返回数据)

    16、HTTP、状态码:
    200:成功
    302:重定向
    404:请求失败,请求希望得到的资源违背在服务器发现。(只要不是新手写的demo,一般404都是你路径写错了,或者未区分大小写啥的)
    502:无效的响应(基本上就是Tomcat没启好)
    400:请求没有进入到后台服务里(一般都是前端的锅)

    相关文章

      网友评论

          本文标题:2022-02-22前端试题

          本文链接:https://www.haomeiwen.com/subject/dzfglrtx.html