1. 程式人生 > >鏈家面試

鏈家面試

Q1:分頁問題

只能offset和limit就能解決分頁問題嗎?
很顯然是不能的,因為會有新的資料填到資料庫裡面。

  • 解決方案一:儲存
    把資料查詢完以後全部放置前端進行快取,需要的時候直接在快取中拿資料即可
  • 解決方案二:使用小於或者大於生成資料的時間進行查詢分頁的資料

Q2:html

新的標籤nav、section、article、footer、header、aside等
為什麼新增這些標籤?

  • 去掉或者丟失樣式的時候能夠讓頁面呈現出清晰的結構
  • 有利於SEO,和搜尋引擎建立良好的溝通,有助於爬蟲抓取更多有效的資訊:爬蟲依賴於標籤來確定上下文和各個關鍵字的權重
  • 方便其他裝置的解析(如螢幕閱讀器、盲人閱讀器、移動裝置)以意義的方式渲染網頁
  • 便於團隊開發和維護,語義化更具可讀性。

Q3:怎麼實現視訊播放

一:使用HTML5新標籤
二:使用flash外掛
優缺點:使用flash可以做到瀏覽器相容,只不過需要安裝flash
HTML5新標籤,不用安裝任何外掛,但是低版本瀏覽器不支援

Q4:float和position

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type
="text/css">
div { width: 100px;height: 100px; } #div1 { background-color: green;float: left; } #div2 { width: 120px;height: 12px;background-color: red; } </style> </head> <body> <div id="div1"
>
</div> <div id="div2"></div> </body> </html>

效果如圖:這裡寫圖片描述

note:元素被float之後已經不再佔用原來的位置,所以下一行的元素就上來了

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        div {
            width: 100px;height: 100px;
        }
        #div1 {
            background-color: green;float: left;
        }
        #div2 {
            width: 120px;height: 120px;background-color: red;
        }
    </style>
</head>
<body>
    <div id="div2"></div>
    <div id="div1"></div>
</body>
</html>

效果如圖:這裡寫圖片描述

note:元素被float之後,它會浮動到遇到父元素邊框或者前一個浮動元素為止。

positon:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        div {
            width: 100px;height: 100px;
        }
        #div1 {
            background-color: green;
        }
        #div2 {
            background-color: red;position: absolute;left: 20px;top: 30px;
        }
    </style>
</head>
<body>
    <div id="div2"></div>
    <div id="div1"></div>
    <!-- <div id="div2"></div>效果一樣 -->
</body>
</html>

效果如圖:這裡寫圖片描述
note:position:absolute;這裡也是脫離文件流
來個綜合的:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        div {
            width: 100px;height: 100px;
        }
        #div1 {
            background-color: green;float: left;
        }
        #div2 {
            background-color: red;position: absolute;left: 20px;top: 30px;float: left;
        }
        #div3 {
            background-color: black;width: 120px;height: 120px;
        }
    </style>
</head>
<body>
    <div id="div2"></div>
    <div id="div1"></div>
    <div id="div3"></div>
</body>
</html>

效果圖:這裡寫圖片描述

Q5:js的五種基本資料型別

null、undefined、string、boolean、number

Q6:

        var a = [1,2,3];
        var b = [4,5,6];
        function foo(a) {
            a = [3,2,1];
            b = [6,5,4];
        }
        foo(a);
        a;//[1,2,3]
        b;//[6,5,4]
        var a = 1;
        var b = 3;
        function foo(a) {
            a = 2;
            b = 4;
        }
        foo(a);
        a;//1
        b;//4

Q7:陣列複製

淺複製就不用說了,兩個變數指向同一個引用地址
深複製

        var a = [1,2,3];
        function deepCopy(arr) {
            var newArr = [];
            for (var i = 0; i < arr.length; i++) {
                if(Array.isArray(arr[i])) {
                    newArr.push(deepCopy(arr[i]));
                }else {
                    newArr.push(arr[i]);
                }
            }
            return newArr;
        }
        var b = deepCopy(a);
        b.push(4);
        a;//[1,2,3]
        b;//[1,2,3,4]

Q8:http的

http協議在哪一層?應用層
他是基於哪些協議的?HTTP 是基於 TCP/IP 協議的應用層協議。它不涉及資料包(packet)傳輸,主要規定了客戶端和伺服器之間的通訊格式,預設使用80埠。
https:在http上進行了加密操作
使用https需要注意些什麼嗎?