19年面試總結

来源:https://www.cnblogs.com/jun-qi/archive/2019/03/16/10543210.html
-Advertisement-
Play Games

基礎知識點 1.水平垂直居中 子絕父相,子盒子設置絕對定位,設置top:50%;left:50%,margin-top:-50%;margin-left:-50%; 子絕父相,子盒子設置絕對定位,設置 left & top & right & bottom為0;margin: auto; 伸縮盒子, ...


基礎知識點   1.水平垂直居中
  1. 子絕父相,子盒子設置絕對定位,設置top:50%;left:50%,margin-top:-50%;margin-left:-50%;
  2. 子絕父相,子盒子設置絕對定位,設置 left & top & right & bottom為0;margin: auto;
  3. 伸縮盒子,父元素設置flex;justify-content: center;align-items: center;
  4. 利用transform屬性,需要設置子絕父相,設置top:50%;left:50%;transform:translate(-50%, -50%);
2.聖杯佈局
  1. 中間盒子設置寬度100%,左右margin,留出左右盒子的位置
  2. 左右盒子在通過定位至左右
3.相容性問題
  1. 標簽樣式在不同的瀏覽器各自的margin 和padding差異較大, 解決方案:css里 *{margin:0;padding:0;}
  2. 當在a標簽中嵌套img標簽時,在某些瀏覽器中img會有藍色邊框;解決方案:給img添加border:0;或者是border:none;
  3. 圖片預設有間;隙解決方案:1)給img標簽添加左浮動float:left;2)給img標簽添加display:block。
  4.清除浮動的方法?(重點)
      1.父級div定義height
      2.結尾處家空div標簽clear:both
      3.父級div定義 偽類:after和zoom
     4.父級div定義 overflow:hidden   5.前端優化技巧
  1. 壓縮css,js,圖片
    2.減少http請求次數,合併css,js 合併圖片(雪碧圖)
    3.使用CDN
    4.減少dom元素數量
    5.圖片懶載入
    6.靜態資源另外用無cookie得功能變數名稱
    7.減少dom的訪問(緩存dom)
    8.巧用事件委托
    9.樣式表置頂,腳本置低
6.this指向問題   一般來說,誰調用,this就指向誰,特殊情況除外   普通函數調用,此時 this 指向 window   定時器函數, 此時 this 指向 window

更改this指向的三個方法

  1.call( )方法調用一個函數,其具有一個指定的this值

    fn.call(改變其this指向, [指定的參數] ) 如果指定了null或者undefired,則內部this指向window

    應用場景:①借用構造函數

        ②借用其他對象的方法

  2.apply( )方法調用一個函數,其具有一個指定的this值,作為一個數組提供的參數

    fn.apply(var1, var2) 應用:把數組展開

    應用場景:把數組展開,傳遞給調用的方法

  3.bind 不會調用函數,會返回一個新的函數

    應用場景:①改變定時器內部的this,②改變事件處理函數的this

  7、json字元串轉化方法 JSON.parse(str); //由JSON字元串轉換為JSON對象 JSON.stringify(obj); //將JSON對象轉化為JSON字元   進階知識點   1、設置分頁符
 1 function farmat(mun) {
 2         if (mun === null) return;
 3         var m = parseInt(mun).toString();
 4         var len = m.length;
 5         if (len <= 3) return m;
 6         var n = len % 3;
 7         if (n > 0) {
 8             return m.slice(0,n)+","+m.slice(n,len).match(/\d{3}/g).join(",")
 9         } else {
10             return m.slice(n,len).match(/\d{3}/g).join(",")
11         }
12     }
13     var a =farmat(1000000)
14     console.log(a);
  2、只能輸入數字和小數點
1 function clearNoNum(obj){ 
2     obj.value = obj.value.replace(/[^\d.]/g,"");  //清除“數字”和“.”以外的字元  
3     obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一個. 清除多餘的  
4     obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$","."); 
5     obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能輸入兩個小數  
6     if(obj.value.indexOf(".")< 0 && obj.value !=""){//以上已經過濾,此處控制的是如果沒有小數點,首位不能為類似於 01、02的金額 
7         obj.value= parseFloat(obj.value); 
8     } 
9 }
  4、統計每一個字元串出現的次數
 1 //字元串
 2 var strs = "asdasdadd";
 3         function getmaxstr(str){
 4             if(str.length == 1){return str;}
 5             var newarr = [];
 6             for(var i = 0 ; ss= str.length, i<ss; i++ ){
 7                 if(!newarr[str.charAt(i)]){
 8                     newarr[str.charAt(i)] = 1;
 9                 }else{
10                     newarr[str.charAt(i)] +=1;
11                 }
12             }
13             console.log(newarr);
14             var maxkey='';
15             var maxvalue=1;//設定一個值
16             for(var k in newarr){
17                 if(newarr[k]> maxvalue){//根據這個值做判讀 將數組中的每個元素 與這個值做比較! 如果大於他,那麼將住宿
18                     maxvalue = newarr[k];//出現的次數
19                     maxkey = k;//次數最多的 字母
20                 }
21             }
22             console.log(maxkey);
23             return maxkey;
24         }
25         getmaxstr(strs);
 1 //數組
 2 var arr =["a","b","c","c","c","d"];
 3     Array.prototype.diaohuan=function(arr){
 4         var newarr=[];
 5         for(var i = 0; i<this.length; i++){
 6             if(!newarr[this[i]] ){
 7                 newarr[this[i]] = 1;
 8             }else{
 9                 newarr[this[i]] +=1;
10             }
11         }
12         console.log(newarr);
13         var maxkey = 1;
14         var maxvalue ="";
15         for (var k in newarr){
16             if(newarr[k] > 1){
17                 maxvalue =newarr[k];
18                 maxkey = k;
19             }    
20         }
21         return maxkey;
22         console.log(maxvalue);
23     }
24       alert(arr.diaohuan());

 

高難度知識點

 

怎樣引入一個第三方的包?

 

require與import的區別:

 

遵循規範:
require 是 AMD規範引入方式
import是es6的一個語法標準,如果要相容瀏覽器的話必須轉化成es5的語法

調用時間:
require是運行時調用,所以require理論上可以運用在代碼的任何地方
import是編譯時調用,所以必須放在文件開頭

本質:
require是賦值過程,其實require的結果就是對象、數字、字元串、函數等,再把require的 
結果賦值給某個變數
import是解構過程,但是目前所有的引擎都還沒有實現import,我們在node中使用babel支持 
ES6,也僅僅是將ES6轉碼為ES5再執行,import語法會被轉碼為require

 

在那調用第三方支付介面?為什麼?

 

前端調介面和後端調介面各有什麼區別,優勢與特點 一般支付介面都是由後端和支付單位聯繫調取的,前端調介面容易被劫持,不安全.

 


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

-Advertisement-
Play Games
更多相關文章
  • html標簽中有沒有什麼自帶的屬性可以存儲成績的 沒有 本身html標簽沒有這個屬性,自己(程式員)添加的, 自定義屬性 為了存儲一些數據 在html標簽中添加的自定義屬性,如果想要獲取這個屬性的值,需要使用getAttribute("自定義屬性的名字")才能獲取這個屬性的值 使用方法: 設置自定義 ...
  • 我安裝webpack時,出現如下錯誤: C:\Users\admin> npm install webpack -gnpm WARN checkPermissions Missing write access to C:\Users\admin\AppData\Roaming\npm\node_mo ...
  • Promise是一部編程的一種解決方案, 簡單說就是一個容器,裡面保存著麽謳歌未來才會結束的事件(通常是一個非同步操作)的結果 是為了簡化非同步對象,解決地獄回掉情況 Promise:有兩個回調函數:resolve:將對象的狀態從未完成變成成功 :reject:將對象的狀態從未完成變成失敗 下麵的代碼是 ...
  • 首先明白一點,JavaScript中的this指向只與函數的調用方式有關。判斷this指向誰,可以用下麵四條規則,並且四條規則的優先順序順序是從上到下的: 1. 如果函數是通過new操作符調用的,那麼this指向通過new創建的新對象; 2. 如果函數是通過call或apply方法調用的,那麼this ...
  • node.js的初級使用 作為一個全棧開發員怎麼能不會node.js了?至少得會用node搭載環境吧!話不多說直接開乾! 一、下載與安裝: 官網:http://nodejs.cn/ 中文文檔:http://nodejs.cn/api/ 下載好對應版本後直接雙擊安裝即可。 安裝完成後再命令行輸入:no ...
  • 效果截圖: ...
  • 1.最傳統方法 for迴圈 for… in for…of 雖然for… in 、 for… of 都能夠變曆數組,但是兩者還是有很大區別的,先說結論: 兩者的主要區別在於他們的迭代方式 推薦在迴圈對象屬性的時候,使用for in,在遍曆數組的時候推薦使用for of for…in 迴圈出來的是key ...
  • H5的新特性 1.語義化標簽 2.表單新特性 3.多媒體視頻(video)和音頻(audio) 4.web存儲 C3的新特性 1.選擇器:屬性選擇器E[attr],偽類選擇器E:nth-child(n),空偽類E:empty ,排除偽類E:not(selector) 2.顏色:新增了RGBA、HSL ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...