撩課-Web大前端每天5道面試題-Day15

来源:https://www.cnblogs.com/gxq666/archive/2018/12/23/10163281.html
-Advertisement-
Play Games

1.請描述一下 cookies,sessionStorage 和 localStorage 的區別? 2.請解釋一下CSS3的Flexbox(彈性盒佈局模型),以及適用場景? 3.為什麼要初始化CSS樣式? 4.如何實現數組的隨機排序? 5.javascript 代碼中的"use strict";是 ...


1.請描述一下 cookies,sessionStorage 和 localStorage 的區別?

  cookie是網站為了標示用戶身份而儲存在用戶本地終端(Client Side)上的數據(通常經過加密)。
  cookie數據始終在同源的http請求中攜帶(即使不需要),
  記會在瀏覽器和伺服器間來回傳遞。
  sessionStorage和localStorage不會自動把數據發給伺服器,僅在本地保存。

  存儲大小:
    cookie數據大小不能超過4k。
    sessionStorage和localStorage 雖然也有存儲大小的限制,
    但比cookie大得多,可以達到5M或更大。

  有期時間:
    localStorage    存儲持久數據,
    瀏覽器關閉後數據不丟失除非主動刪除數據;
    sessionStorage  數據在當前瀏覽器視窗關閉後自動刪除。
    cookie          設置的cookie過期時間之前一直有效,即使視窗或瀏覽器關閉

 

2.請解釋一下CSS3的Flexbox(彈性盒佈局模型),以及適用場景?

 一個用於頁面佈局的全新CSS3功能,Flexbox可以把列表放在同一個方向(從上到下排列,從左到右),並讓列表能延伸到占用可用的空間。
   較為複雜的佈局還可以通過嵌套一個伸縮容器(flex container)來實現。
   採用Flex佈局的元素,稱為Flex容器(flex container),簡稱"容器"。
   它的所有子元素自動成為容器成員,稱為Flex項目(flex item),簡稱"項目"。
   常規佈局是基於塊和內聯流方向,而Flex佈局是基於flex-flow流可以很方便的用來做局中,能對不同屏幕大小自適應。
   在佈局上有了比以前更加靈活的空間。

 

3.為什麼要初始化CSS樣式?

因為瀏覽器的相容問題,不同瀏覽器對有些標簽的預設值是不同的,如果沒對CSS初始化往往會出現瀏覽器之間的頁面顯示差異。

  當然,初始化樣式會對SEO有一定的影響,但魚和熊掌不可兼得,但力求影響最小的情況下初始化。

  最簡單的初始化方法: * {padding: 0; margin: 0;} (強烈不建議)

  淘寶的樣式初始化代碼:
  body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, 
  dl, dt, dd, ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td { margin:0; padding:0; }
  body, button, input, select, textarea { font:12px/1.5tahoma, arial, \5b8b\4f53; }
  h1, h2, h3, h4, h5, h6{ font-size:100%; }
  address, cite, dfn, em, var { font-style:normal; }
  code, kbd, pre, samp { font-family:couriernew, courier, monospace; }
  small{ font-size:12px; }
  ul, ol { list-style:none; }
  a { text-decoration:none; }
  a:hover { text-decoration:underline; }
  sup { vertical-align:text-top; }
  sub{ vertical-align:text-bottom; }
  legend { color:#000; }
  fieldset, img { border:0; }
  button, input, select, textarea { font-size:100%; }
  table { border-collapse:collapse; border-spacing:0; }

 

4.如何實現數組的隨機排序?

方法一:
    var arr = [1,2,3,4,5,6,7,8,9,10];
    function randSort1(arr){
        for(var i = 0,len = arr.length;i < len; i++ ){
            var rand = parseInt(Math.random()*len);
            var temp = arr[rand];
            arr[rand] = arr[i];
            arr[i] = temp;
        }
        return arr;
    }
    console.log(randSort1(arr));
    
  方法二:
    var arr = [1,2,3,4,5,6,7,8,9,10];
    function randSort2(arr){
        var mixedArray = [];
        while(arr.length > 0){
            var randomIndex = parseInt(Math.random()*arr.length);
            mixedArray.push(arr[randomIndex]);
            arr.splice(randomIndex, 1);
        }
        return mixedArray;
    }
    console.log(randSort2(arr));

  方法三:
    var arr = [1,2,3,4,5,6,7,8,9,10];
    arr.sort(function(){
        return Math.random() - 0.5;
    })
    console.log(arr);

 

5.javascript 代碼中的"use strict";是什麼意思 ? 使用它區別是什麼?

use strict是一種ECMAscript 5 添加的(嚴格)運行模式,
 這種模式使得 Javascript 在更嚴格的條件下運行,

 使JS編碼更加規範化的模式,消除Javascript語法的一些不合理、
不嚴謹之處,減少一些怪異行為。
 預設支持的糟糕特性都會被禁用,比如不能用with,
也不能在意外的情況下給全局變數賦值;
 全局變數的顯示聲明,函數必須聲明在頂層,
不允許在非函數代碼塊內聲明函數,arguments.callee也不允許使用;
 消除代碼運行的一些不安全之處,
保證代碼運行的安全,限制函數中的arguments修改,
嚴格模式下的eval函數的行為和非嚴格模式的也不相同;

 提高編譯器效率,增加運行速度;
 為未來新版本的Javascript標準化做鋪墊。

 

6.http狀態碼有那些?分別代表是什麼意思?

100-199 用於指定客戶端應相應的某些動作。 
200-299 用於表示請求成功。 
300-399 用於已經移動的文件並且常被包含在定位頭信息中指定新的地址信息。 
400-499 用於指出客戶端的錯誤。400    1、語義有誤,當前請求無法被伺服器理解。
401   當前請求需要用戶驗證 403  伺服器已經理解請求,但是拒絕執行它。
500-599 用於支持伺服器錯誤。 503 – 服務不可用

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我超級推薦的Navicat Premium 12的下載,破解方法 ...
  • 前面我們已經實現了七種模型,接下來我們分別會對這七種進行評估,主要通過auccuracy,precision,recall,F1-score,auc。最後畫出各個模型的roc曲線 接下來分別看看各個評分的意義 accuracy(準確率) 對於給定的測試數據集,分類器正確分類的樣本數與總樣本數之比。也 ...
  • 2016-12-22 14:28:39 該系列文章鏈接NoSQL 資料庫簡介Redis的安裝及及一些雜項基礎知識Redis 的常用五大數據類型(key,string,hash,list,set,zset)Redis 配置文件介紹Redis 持久化之RDBRedis 持久化之AOFRedis 主從複製 ...
  • 2016-12-22 15:30:43 本篇文章屬於Redis 系列第四篇文章:Redis 配置文件介紹 該系列文章鏈接 NoSQL 資料庫簡介 Redis的安裝及及一些雜項基礎知識 Redis 的常用五大數據類型(key,string,hash,list,set,zset) Redis 配置文件介 ...
  • Mysql資料庫的隔離級別有四種 1.read umcommitted 讀未提交(當前事務可以讀取其他事務沒提交的數據,會讀取到臟數據) 2.read committed 讀已提交(當前事務不能讀取其他事務沒提交的數據,只能讀取其他事務已經提交的數據,但會出現每次讀取的數據都會不同) 3.repea ...
  • 2016-12-21 14:54:20 該系列文章鏈接NoSQL 資料庫簡介Redis的安裝及及一些雜項基礎知識Redis 的常用五大數據類型(key,string,hash,list,set,zset)Redis 配置文件介紹Redis 持久化之RDBRedis 持久化之AOFRedis 主從複製 ...
  • TextSwitcher集成了ViewSwitcher, 因此它具有與ViewSwitcher相同的特性:可以在切換View組件時使用動畫效果。與ImageSwitcher相似的是,使用TextSwitcher也需要設置一個ViewFactory。與ImageSwitcher不同的是,TextSwi ...
  • 一、前言 今天帶來的是王牌大作戰的破解教程,游戲下載的話,我是直接去TapTap官網下載的 支付寶內購破解用老套了,今天學點破解的新花樣吧!! 二、支付寶內購破解 支付寶的內購破解已經很熟悉了, 直接搜索“9000”,之後找到代碼,修改判斷條件即可,若不明白,請看我之前寫的博客,Android破解之 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...