interview準備工作

2021-09-17 05:02:21 字數 2841 閱讀 7759

怎麼判斷乙個陣列為連續陣列,採用空間複雜度和時間負責度最小。 for一次就好了

折線圖和餅圖還有拓撲圖元件開發

loadsh deepclone

轉殖乙個物件

js 六種資料型別

number (基本型別——>引用型別)

string (基本型別——>引用型別)

boolean (基本型別——>引用型別)

undefined

null

object (包裝型別、引用型別)

eg:var str = 『string』;

console.log(str.length); //6 //str 是基本型別但是在.length 屬性時,會去呼叫其引用型別上的方法。用完後就會把他銷毀

str.t = 100;

console.log(str.t);// undefined

js 型別檢查

typeof //適合判斷基本型別 和 函式型別 number,boolean,string,function; typeof null === 「object」 歷史原因

instanceof // 判斷乙個物件常用, 這個是基於原型鏈的乙個判斷 obj instanceof object 做運算元的原型鏈上是否有右運算元。在不同iframe和window間檢測時失效。

constructor

constructor是指向這個函式的構造器/建構函式。但是 這個指向是可以被改寫的所以不靠譜

duck type (鴨子型別——根據這個需判斷型別物件的特徵)

eg: 需要判斷乙個陣列,可以通過判斷一些方法或者特徵,比如push pop 等

重置瀏覽器樣式 normal.css reset.css

相容移動端 採用rem; base.js //dpr 畫素比

base.css 進行相容各種情況

工具函式tools.js

頁面路由管理 vue-router keep-alive; query,params 兩種方式拿傳遞過來的引數

ajax請求 axios;

元件傳值 emit

頁面傳值 vuex

增強使用者體驗可以採用 skeleton(基於vuejs實現 skeleton loading 骨架圖)

打包可以採用webpack, 壓縮和混淆; //loader scss, 可以審核效能圖

垂直水平居中:1 position: absolute; transform; 2 display: flex;

能拿到請求引數的位置: formdata、位址列url、請求頭header

##js

變數宣告 函式宣告 都會前置。

函式宣告和函式表示式

事件迴圈機制 eventloop

宣告是無法確定,執行時才能確定。

1、原型和原型鏈 prototype (顯示原型) prototype (隱式原型)

2、this 作用域 閉包

3、非同步單執行緒

this 要在執行時才能確定值,定義時無法確認(「誰調指誰,沒有誰呼叫時指window」)

arr.sort(); // 不行

arr.sort(function(n1, n2) )

##es6

let 賦值過了的不能重複賦值 嚴格模式也可以做到這點

const 給常量賦值

結構賦值

string 和 array object function新增了很多方法。

新增symbol型別

set map

generator生成器 yaild next

class 繼承

module 模組化

箭頭函式 的區別和作用

promise then()

pending、fulfilled、rejected

陣列如何去重

##設計模式

單例模式

觀察者模式 // 一對多

命令模式 // 一對一

工廠模式

前端頁面效能

(1) 載入優化 (減小請求資源大小,減少請求個數) 採用打包工具壓縮, 採用模組化, 瀏覽器請求是有限制的如果同時向乙個網域名稱請求最多並行請求5個。可以將資源分開放置到不同網域名稱伺服器,如放到伺服器,js css 也可分別放置到不同伺服器。

(2) 執行優化 0、html上的優化(盡量採用語義化標籤,盡量防止頁面重排和重繪),1、css優化 選擇器上的優化。能採用id選擇的就不採用class選擇,效能相差很大。3、減少請求採用快取。

前端安全

除錯功能

全平台除錯的weinre 和adobe edge inspect cc,國人自研的ios專用工具mihtool

《專案經驗》

(1).每次傳送ajax請求前都會有乙個option

答案:查詢原因是瀏覽器對簡單跨域請求和複雜跨域請求的處理區別。

xmlhttprequest會遵守同源策略(same-origin policy). 也即指令碼只能訪問相同協議/相同主機名/相同埠的資源, 如果要突破這個限制, 那就是所謂的跨域, 此時需要遵守cors(cross-origin resource sharing)機制。

那麼, 允許跨域, 不就是服務端設定access-control-allow-origin: *就可以了嗎? 普通的請求才是這樣子的, 除此之外, 還一種叫請求叫preflighted request。

preflighted request在傳送真正的請求前, 會先傳送乙個方法為options的預請求(preflight request), 用於試探服務端是否能接受真正的請求,如果options獲得的回應是拒絕性質的,比如404\403\500等http狀態,就會停止post、put等請求的發出。

那麼, 什麼情況下請求會變成preflighted request呢?

C lua準備工作

ubuntu源裡的lua是5.0的.而最新的是5.2.如果只是學習lua語法什麼的直接apt get就好了.不過如果想做c lua的嵌入工作.就只能自己下原始碼編譯了 步驟 1.依賴的庫 readline,ncurses 這兩個庫可以從網上下原始碼然後編譯安裝.這樣其實最好了 如果不嫌源裡的舊.其實...

單據準備工作

虛擬機器 uap studio nc home 單據開發 基於studio的 單開發。擴充套件開發 對 單進行夥伴級拓展。報表平台 基於 單的分組統計和交叉統計。輕量化 交通費報銷開發。報表平台 語義模型 自由報表 基於模型的開發 實體 列舉及他們之間的關係。實體屬性 資料型別 約束 與業務介面的對...

python flask 準備工作

1 1搭建虛擬環境 安裝虛擬環境 sudo pip install virtualenv 1 建立目錄存放虛擬環境 mkdir home virtualenvs 2 開啟 bashrc檔案,並新增如下 vim bashrc 開啟後新增 export workon home home virtuale...