【每日前端面經】2024-03-01

題目來源: 牛客

MVVM怎么實現

MVVM分別指View、Model、ViewModel,View通過View-Model的DOM監聽器將事件綁定到Model上,而Model則通過Data Bindings來管理View中的數據,View-Model從中起到一個連接的作用

  • 響應式: vue如何監聽data的屬性變化
  • 模板解析: vue的模板是如何被解析
  • 渲染: vue的模板是如何被渲染成HTML

發布訂閱模式

發布訂閱模式是一種對象間一對多的依賴關系,當一個對象的狀態發送改變時,所有依賴于它的對象都將得到狀態改變的通知。訂閱者把自己想訂閱的事件注冊到調度中心,當發布者發布該事件到調度中心,由調度中心統一調度訂閱者注冊到調度中心的回調函數

  • 創建一個對象
  • 在該對象上創建一個緩存列表
  • on 方法用來把函數fn都加到緩存列表中
  • emit 方法用來取到arguments里第一個當作event,根據event值去執行對應緩存列表中的函數
  • off 方法可以根據event值取消訂閱
  • once 方法只監聽一次,調用完畢后刪除緩存函數

觀察者模式和發布訂閱模式的區別

  • 觀察者模式是軟件設計模式中的一種,但發布訂閱模式是軟件架構模式的一種消息范式
  • 觀察者模式需要觀察者和被觀察者,發布訂閱模式需要發布者、訂閱者和發布訂閱中心
  • 觀察者模式一般是一對多的關系,通過被觀察者主動建立,需要至少三個方法:添加觀察者|移除觀察者|通知觀察者;發布訂閱者是基于一個中心來建立整個體系,其中發布者和訂閱者不直接進行通信,而是發布者把要發布的消息交給中心管理,訂閱者也是根據自己的情況按需訂閱消息

Vue單向數據流

所有的prop都使得其父子prop之間形成了一個單向下行綁定:父級prop的更新會向下流動到子組件中,但是反過來則不行。這樣能防止子組件意外改變父組件的狀態,從而導致應用的數據流向難以理解

原生JS監聽鼠標

  • click: 單擊鼠標左鍵
  • dblclick: 單機鼠標右鍵
  • mousedown: 單機任意一個鼠標按鈕
  • mouseout: 鼠標指針位于某個元素啊上且將要移除元素的邊界
  • mouseover: 鼠標指針移出某個元素到另一個元素上
  • mouseup: 松開任意一個鼠標按鈕時發生
  • mousemove: 鼠標在某個元素上持續發生

cookie|localstorage|sessionstorage

三者都是開發中用到的臨時存儲客戶端會話信息或者數據的方法

  • 有效期不同: cookie有效期可以設置,默認時瀏覽器關閉后失效;sessionStorage默認是當前頁面關閉后失效;localStorage默認是永久有效,需要手動刪除
  • 存儲大小不同: cookie在4kb左右;localStorage和sessionStorage的容量在5Mb
  • 服務端通信: cookie會參與到服務端通信中,一般會攜帶在http請求的頭部中;localStorage和sessionStorage不參與服務端通信
  • 讀寫操作: cookie操作起來較為繁瑣,部分數據不可讀取操作;sessionStorage和localStorage操作起來較為簡便
  • 支持程度: cookie出現時間更早,瀏覽器支持程度更高

盒子模型

盒子分為margin、border、padding、content,其中width=content

怪異盒模型

盒子分為margin、border、padding、content,其中width=content + padding * 2 + border * 2

ref|reactive|toRef|toRefs

  • ref: 用于為數據添加響應式狀態,獲取數據值需要.value
  • reactive: 用于為對象添加響應式狀態,不需要.value
  • toRef: 用于為源響應式對象上的屬性新建一個ref,從而保持對其源對象的響應式連接,返回一個ref數據
  • toRefs: 用于將響應式對象轉化成結果對象,其中結果對象的每個屬性都是指向原始對象相應屬性的ref,可以在對象解構時賦予響應式

JS數據類型

  • Number
  • Boolean
  • Null
  • Undefined
  • Object
  • String
  • Symbol
  • BigInt

v-model

v-model負責監聽用戶的輸入事件以更新數據,背后由兩個操作:v-bind綁定value屬性的值;v-on綁定input事件監聽函數

MVVM框架理解及其原理實現
JavaScript 發布-訂閱模式
理解【觀察者模式】和【發布訂閱】的區別
理解vue的單向數據流
JS鼠標事件(非常詳細)
cookie、localStorage和sessionStorage三者的區別
CSS詳解——盒子模型
全網最詳細的v-model講解
ref、reactive、toRef、toRefs的區別

新手發文,禮貌求關??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/711598.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711598.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711598.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入 Starknet 去中心化世界,探秘實用開發利器

Starknet 近期開放空投,面向 130 萬地址總量發放超 7 億枚 Token,讓 ECMP 早期貢獻者、GitHub 開源開發者、Starknet 用戶等各個層面的生態參與者都得以深度參與。 盛宴的背后,是 Starknet 正迎來發展的關鍵機遇。在今年以太坊坎昆升級的背景…

從別人的開源項目學習并吸收經驗,然后逐步搭建自己的Java項目是一個很好的學習方法

從別人的開源項目學習并吸收經驗,然后逐步搭建自己的Java項目是一個很好的學習方法。以下是一些建議的步驟,幫助你從0開始搭建并不斷完善自己的Java項目,直至達到高可靠、高穩定、高并發、高數據安全,并可以拆分為微服務的大型高質…

【漏洞復現】某廠商上網行為管理系統static_convert命令執行漏洞

Nx01 產品簡介 天融信上網行為管理系統是天融信公司憑借多年來的安全產品研發經驗,為滿足各行各業進行網絡行為管理和內容審計的專業產品。 Nx02 漏洞描述 天融信上網行為管理系統老版本static_convert.php接口存在RCE漏洞,攻擊者利用此漏洞可以獲取服務…

超強預測算法:XGBoost預測模型

目錄 往期精彩內容: 多變量特征序列、單序列數據預測實戰 前言 1 風速數據預處理與數據集制作 1.1 導入數據 1.2 多變量數據預處理與數據集制作 1.3 單序列數據預處理與數據集制作 2超強模型XGBoost——原理介紹 3 模型評估和對比 3.1 隨機森林預測模型 3…

基于NeRF/Gaussian的全新SLAM算法

什么是SLAM? SLAM,即同時定位與地圖構建技術,SLAM可以讓機器人、無人機和其他自動化系統能夠在未知環境中同時進行自我定位和環境映射。 為什么是NeRF-Based SLAM? 傳統CG將輸入圖像重新投影再融合到新的視圖攝像機中&#xff0c…

InfiniBand 200Gbps QSFP56 高速線纜/光纜和光模塊解決方案

隨著數據中心和人工智能迅速發展,對高速、低延遲和低功耗的數據傳輸需求變得至關重要。飛速(FS)提供針對各種高性能計算場景量身定制的各種InfiniBand線纜和光模塊產品。本文旨在概述飛速(FS)200G InfiniBand HDR 光纜…

深圳地鐵12號線綠色出行新時代,格力中央空調助力節能飛躍

深圳地鐵12號線,作為城市交通的重要組成部分,其運行貫穿著前海、南山、寶安、西鄉等多個區域,承載著數以萬計的乘客,是深圳市民出行的重要選擇。在這條城市動脈上,一項革命性的變革正在悄然發生——綠色出行的新時代正…

MSCKF2講:JPL四元數與Hamilton四元數

MSCKF2講:JPL四元數與Hamilton四元數 文章目錄 MSCKF2講:JPL四元數與Hamilton四元數2 JPL四元數2.1 定義與區別2.2 JPL四元數的乘法2.3 反對稱矩陣2.4 Ω ( ω ) \Omega(\omega) Ω(ω)矩陣2.5 JPL四元數與旋轉矩陣的轉換2.6 JPL四元數導數2.7 JPL四元數…

SpringCloud搭建微服務之Consul服務注冊與發現

1. Consul介紹 Consul是由HashiCorp公司使用Go語言開發的一款開源工具,主要用于實現分布式系統的服務發現和服務配置,其內置了服務注冊與發現框架、分布式一致性協議實現、健康檢查、Key-Value存儲、多數據中心方案。Consul具有高可移植性,支…

Java多線程系列——Executor

目錄 Executor框架概覽 核心組件 1. 任務(Task) 2. 線程池(ThreadPool) 3. 任務調度 4. 任務執行與結果檢索 使用案例 實際應用場景 總結 Java的多線程編程是Java語言提供的核心特性之一,允許開發者有效地管理…

【數倉】Hadoop軟件安裝及使用(集群配置)

一、環境準備 1、準備3臺虛擬機 Hadoop131:192.168.56.131Hadoop132:192.168.56.132Hadoop133:192.168.56.133 本例系統版本 CentOS-7.8,已安裝jdk1.8 2、hosts配置,關閉防火墻 vi /etc/hosts添加如下內容&#x…

ip獲取+歸屬地實現

1.背景 現在的社交平臺一般都需要展示用戶的歸屬地,這個功能有下面二個主要功能點,接下來我們來介紹下具體實現。 IP 獲取 IP 轉歸屬地 2.ip獲取 2.1 Http請求 對于controller的請求,我們只需要寫個攔截器,將用戶的ip設置進上下文即可,非常方便。 @Override public bo…

生成式AI設計模式:綜合指南

原文地址:Generative AI Design Patterns: A Comprehensive Guide 使用大型語言模型 (LLM) 的參考架構模式和心理模型 2024 年 2 月 14 日 對人工智能模式的需求 我們在構建新事物時,都會依賴一些經過驗證的方法、途徑和模式。對于軟件工程師來說&am…

物聯網與智慧城市的融合:構建智能化、便捷化、綠色化的城市未來

一、引言 隨著科技的飛速發展和城市化的不斷推進,物聯網技術正逐步滲透到城市的各個領域,成為推動智慧城市建設的核心力量。物聯網與智慧城市的融合,不僅為城市治理提供了高效、智能的解決方案,也為市民的生活帶來了前所未有的便…

如何在Node.js中使用定時器

在Node.js中使用定時器是一項常見且重要的任務,特別是在需要執行定時任務或者輪詢操作的情況下。Node.js提供了多種方式來實現定時器功能,包括setTimeout、setInterval和setImmediate等方法。本篇博客將介紹如何在Node.js中使用這些定時器,并…

(數據結構)二叉樹

8.二叉樹 8.1概述 二叉樹是一種基本的非線性數據結構,它是由n(n>0)個節點構成的有限集合。在二叉樹中,每個節點最多有兩個子節點,通常被稱作左孩子(left child)和右孩子(right c…

把python完全卸載干凈

1.winR,輸入control回車,點擊程序和功能,在搜索框輸入python,右鍵點擊卸載 2、找到Python安裝路徑,把所有文件全部刪除。 安裝路徑可以打開CMD輸入:where python 3、強制刪除Python.exe 打開cmd&#xff…

科技企業如何做到FTP數據安全保護

在數字化浪潮的推動下,科技企業的數據已成為推動創新、提升效率、增強競爭力的核心資源。數據的重要性不言而喻,它不僅包含了客戶信息、市場分析、產品設計等關鍵信息,更是企業寶貴的資產。然而,隨著數據量的激增,數據…

視覺AIGC識別——人臉偽造檢測、誤差特征 + 不可見水印

視覺AIGC識別——人臉偽造檢測、誤差特征 不可見水印 前言視覺AIGC識別【誤差特征】DIRE for Diffusion-Generated Image Detection方法擴散模型的角色DIRE作為檢測指標 實驗結果泛化能力和抗擾動 人臉偽造監測(Face Forgery Detection)人臉偽造圖生成 …

LabVIEW最佳傳輸系統設計

LabVIEW最佳傳輸系統設計 介紹了基于LabVIEW軟件開發的最佳基帶傳輸系統和最佳帶通傳輸系統的設計。通過軟件仿真實現了脈沖成形濾波器和匹配濾波器的設計,證明了系統在消除碼間干擾和抗噪聲方面的優異性能。此設計不僅激發了學生的學習興趣,還有助于提…