2022-02-22前端試題

1、js的數(shù)據(jù)類型有哪些?
數(shù)據(jù)類型分為基本數(shù)據(jù)類型,復(fù)雜數(shù)據(jù)類型
基本數(shù)據(jù)類型:Boolean(布爾型),String(字符串型),Number(數(shù)字型),Nul(空型),Undefined(未定義型)
復(fù)雜數(shù)據(jù)類型: Object(對象)

2、js中變量的三種定義方式,有什么區(qū)別
const: 設(shè)置常量
var:設(shè)置變量
let:塊幾作用于,設(shè)為變量

3、const obj = { name:’jack’ },這樣定義一個obj的變量,那么能改變obj.name 嗎?
可以, obj等于一個對象,對象是復(fù)雜類型,變量指向的內(nèi)存地址,保存的只是一個指向?qū)嶋H數(shù)據(jù)的指針,const只能保證這個指針是固定的(即總是指向另一個固定的地址),至于它指向的數(shù)據(jù)結(jié)構(gòu)是不是可變的,就完全不能控制了。

4.判斷是否是數(shù)組
var obj = [];
Arrary.isArray(obj) IE8及以下不支持
Object.prototype.toString.call(obj) === '[object Array]'
obj instanceof Array
obj.constructor === Array

5、介紹一下promise
promise是用來表示一個異步操作的完成狀態(tài)與結(jié)果
promise有待處理,接受,拒絕3種狀態(tài)
promise的優(yōu)缺點(diǎn):
promise可以鏈?zhǔn)秸{(diào)用控制事件的執(zhí)行順序;可以使用catch捕捉到錯誤信息;可以避免回調(diào)地域

6、淺拷貝和深拷貝有什么區(qū)別,怎么去深拷貝
深拷貝:JSON.parse(JSON.stringfy(X));遞歸實(shí)現(xiàn)
淺拷貝:Object.assign();直接賦值;循環(huán)第一層

深拷貝遞歸地復(fù)制新對象中的所有值或?qū)傩?,而淺拷貝只復(fù)制引用。
在深拷貝中,新對象中的更改不會影響原始對象,而在淺拷貝中,新對象中的更改,原始對象中也會跟著改。
在深拷貝中,原始對象不與新對象共享相同的屬性,而在淺拷貝中,它們具有相同的屬性。

 json.parse(json,stringfy())的弊端:深復(fù)制之后時間對象會變成字符串;正則對象,error對象會變成空對象;函數(shù)和undefined會丟失;
屬性值為NAN的為變?yōu)閚ull;

7、怎么刪除數(shù)組第一個值
原數(shù)組長度改變:shift(), splice(start, length)
原數(shù)組長度不變: slice(start, end)

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

beforeCreate
created
beforeMounte
mounted
beforeUpdate
updated
beforeDestroy
destrored

當(dāng)頁面加入keep-alive緩存之后,進(jìn)入A緩存頁面 --> B不緩存頁面 --> 再次進(jìn)入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不能一起使用,因?yàn)関-for會比v-if先執(zhí)行。一個數(shù)組循環(huán),它不會先執(zhí)行v-if過濾數(shù)據(jù),再循環(huán),而是先執(zhí)行循環(huán)再過濾數(shù)據(jù),影響渲染速度

12、css3有哪些新特性
圓角(border-radius)
陰影(box-shadow)
線性漸變(linear-gradient)
2D轉(zhuǎn)換(trasform)=>縮放(scale),傾斜(skew),平移(translate),旋轉(zhuǎn)(rotate),matrix(旋轉(zhuǎn),縮放,平移,傾斜,n,n)
3D轉(zhuǎn)換
背景(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的標(biāo)準(zhǔn)盒模型(content-box):寬包括content

14、css選擇符
id選擇器(#myId)
類選擇器(.myId)
偽類選擇器(a:hover)
偽元素選擇器(::before ::after)
標(biāo)簽選擇器(p,div)
屬性選擇器(input[type="submit"])
相鄰子元素選擇器(ul>li)
相鄰兄弟選擇器(p+div)
兄弟選擇器(li~a)
通配符選擇器(*)

15、GET和POST的區(qū)別:
簡單來說:GET產(chǎn)生一個TCP數(shù)據(jù)包,POST產(chǎn)生兩個TCP數(shù)據(jù)包
嚴(yán)格的說:對于GET方式的請求,游覽器會把http header和data一并發(fā)送出去,服務(wù)器響應(yīng)200(返回?cái)?shù)據(jù));
而對于POST請求。游覽器先發(fā)送header,服務(wù)器響應(yīng)100 continue,游覽器再發(fā)送data,服務(wù)器響應(yīng)200 ok(返回?cái)?shù)據(jù))

16、HTTP、狀態(tài)碼:
200:成功
302:重定向
404:請求失敗,請求希望得到的資源違背在服務(wù)器發(fā)現(xiàn)。(只要不是新手寫的demo,一般404都是你路徑寫錯了,或者未區(qū)分大小寫啥的)
502:無效的響應(yīng)(基本上就是Tomcat沒啟好)
400:請求沒有進(jìn)入到后臺服務(wù)里(一般都是前端的鍋)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • web前端面試題分為:html/css面試題、javascript面試題、vue面試題、性能優(yōu)化面試題、網(wǎng)絡(luò)方面面...
    終身成長人格閱讀 11,114評論 0 3
  • client,page和screen的區(qū)別? clientX,clientY是觸摸點(diǎn)相對于viewport視口x,...
    change_22fa閱讀 1,844評論 1 1
  • PNG 有PNG8和truecolor PNG PNG8類似GIF顏色上限為256,文件小,支持alpha透明度,...
    hudaren閱讀 1,834評論 0 0
  • <a name='html'>HTML</a> Doctype作用?標(biāo)準(zhǔn)模式與兼容模式各有什么區(qū)別? (1)、<...
    clark124閱讀 3,826評論 1 19
  • 前端開發(fā)面試題 面試題目: 根據(jù)你的等級和職位的變化,入門級到專家級,廣度和深度都會有所增加。 題目類型: 理論知...
    怡寶丶閱讀 2,682評論 0 7

友情鏈接更多精彩內(nèi)容