【前端面試】字節跳動2019校招面經 - 前端開發崗(二)

【前端面試】字節跳動2019校招面經 - 前端開發崗(二)

因為之前的一篇篇幅有限,太長了看著也不舒服,所以還是另起一篇吧?

一、 jQuery和Vue的區別

jQuery 輕量級Javascript庫
Vue 漸進式Javascript-MVVM框架

jQuery和Vue的對比

  1. jQuery使用了選擇器($函數)選取DOM對象,對其進行賦值、取值、事件綁定等操作,和原生的HTML的區別只在于可以更方便的選取和操作DOM對象,而數據和界面是在一起的。比如需要獲取label標簽的內容:$("lable").val();,它還是依賴DOM元素的值。
  2. Vue通過Vue對象和數據的雙向綁定機制,將數據和View完全分離開來。在Vue中,對數據進行操作不再需要引用相應的DOM對象,可以說數據和View是分離的。
  3. 再說一些Vue相比jQuery而言所具有的優勢

    • 組件化開發,提高代碼的復用
    • 數據和視圖分離,便于維護和操作
    • 虛擬DOM,在無需關心DOM操作的基礎上,依然提供了可靠的性能

二、 模擬jQuery的選擇器($())實現

源碼如下

(function(){jQuery = function( selector, context ) {// The jQuery object is actually just the init constructor 'enhanced'return new jQuery.fn.init( selector, context, rootjQuery );};if ( typeof window === "object" && typeof window.document === "object" ) {window.jQuery = window.$ = jQuery;}
})();

最簡單的方法

僅僅對于IE8及以上有效
(function(){var jQuery = function(selector){return document.querySelectorAll(selector);};window.jQuery = window.$ = jQuery;
})();

querySelectorAll()返回的是DOM原生element對象
而jQuery的選擇器返回的是jQuery的包裝對象,同時包含了原生DOM對象和一些jQuery的構造函數所具有的屬性

稍微復雜一點的實現方法

(function(){var jQuery = function(selector){var result = {};if (selector.substring(0,1) === "#") {result = document.getElementById(selector.substring(1));// this.tqOjbect.data.push(elem);} else if (selector.substring(0,1) === ".") {result = document.getElementsByClassName(selector.substring(1));} else {result = document.getElementsByTagName(selector);}return result;};window.jQuery = window.$ = jQuery;
})();

三、jQuery的鏈式調用實現

var MyJQ = function(){}
MyJQ.prototype = {css:function(){console.log("設置css樣式");return this;},show:function(){console.log("將元素顯示");return this;},hide:function(){console.log("將元素隱藏");}};
var myjq = new MyJQ();
myjq.css().css().show().hide();

四、網絡模型知識

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

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

相關文章

SpringBoot與SpringCloud的版本說明及對應關系

轉載原文地址:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

leetcode 8: 字符串轉整數(atoi)

實現 atoi,將字符串轉為整數。 該函數首先根據需要丟棄任意多的空格字符,直到找到第一個非空格字符為止。如果第一個非空字符是正號或負號,選取該符號,并將其與后面盡可能多的連續的數字組合起來,這部分字符即為整數的…

優秀產品頁設計:將訪問者轉化成客戶

摘要:本文是對外文《 Better Product Pages: Turn Visitors Into Customers 》的翻譯,編譯內容如下: 展示產品、服務的方法是其獲得成功的關鍵。在Web上,你留給用戶的第一印象是至關重要的。 如果有人訪問你的網站,一定…

計算機網絡學習方法

原文見:http://blog.csdn.net/qq_33506160/article/details/51872708 一、網絡課程究竟難在哪? 1.內容比較亂 如果把《計算機網絡技術基礎》看做是一本計算機網絡導論方面的教材,就不會認為亂了,因為導論就是為了解決知…

小程序類似抖音視頻整屏切換

更新 現在已經更新了github地址和效果gif,可在文章最后查看。如果我的代碼對你有用,請幫我隨手star一下。 需求 最近在項目中需要加一個功能,在小程序中將已有的短視頻功能,按照抖音的方式來瀏覽,整屏,可上…

Coding For Fun 32小時:充滿創造、激情、團結的編程馬拉松

摘要:Coding for Fun大賽是2012中國軟件開發者大會(SDCC)的重要環節。由六名黑馬學員組成的“天翼二隊”,經過32小時的“血拼”,憑大賽作品“語音控”,獲得了本次大賽的“最佳設計獎”。本文是該隊隊員的參…

centos6.8安裝oracle12C 詳細步驟講解

2019獨角獸企業重金招聘Python工程師標準>>> centos6.8安裝oracle12C 詳細步驟講解 安裝前環境配置 1 root身份安裝依賴包 [rootdlp ~]# yum -y install binutils compat-libcap1 compat-libstdc-33 compat-libstdc-33.i686 gcc gcc-c glibc glibc.i686 glibc-deve…

解決 springboot 項目:找不到或無法加載主類

Spring Boot下無法加載主類 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 我什么也沒有改,啟動服務報錯如題:找不到或無法加載主類 解決:什么也不…

管理好你的愿望,人生將另一個樣

別讓欲望控制了你欲望是人的本性。人生在世,誰都會有欲望。物欲、食欲、情欲、發財欲、求知欲……欲望是消防隊也無法撲滅的火。作為人,我們不能消除欲望,也不能讓欲望漫無邊際地增長,所以,我們應該把握好欲望的尺度&a…

25 模塊和包

今日內容 import from xxx import xxxx 金庸 1. 導入模塊的執行的步驟 2. 自定義模塊 3. 自定義包(難點) 一個表達式 -> 一條語句 -> 語句塊 -> 函數 -> 類 -> 模塊 -> 包 -> 項目 包就是我們的文件夾, 包內可以寫很…

【許曉笛】 EOS 智能合約案例解析(2)

詳解 EOS 智能合約的 cpp 文件 之前的文章介紹了 eosio.token 智能合約的 hpp 文件,這次向大家介紹 eosio.token.cpp 文件,cpp 文件即 C 代碼文件,智能合約所有的業務邏輯內容都是在 cpp 文件中實現的。 eosio.token.cpp 文件地址&#xff1a…

java 中 transient關鍵字

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 java語言的關鍵字,變量修飾符,如果用transient聲明一個實例變量,當對象存儲時,它的值不需…

java中int轉成String位數不足前面補零

java中int轉成String位數不足前面補零 轉載自:http://ych0108.iteye.com/blog/2174134java中int轉String位數不夠前面補零 String.format("%010d", 25); //25為int型 10代表前面要補的字符 10代表字符串長度 d表示參數為整數類型 今天想將int 轉String 位…

Oops! the requested resource is not found!

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 情況一:調用 dubbo 服務失敗,報錯如題:Oops! the requested resource is not found! 原因很簡單&am…

django URL路由基礎

URL是Web服務的入口,用戶通過瀏覽器發送過來的任何請求,都是發送到一個指定的URL地址,然后被響應。 在Django項目中編寫路由,就是向外暴露我們接收哪些URL的請求,除此之外的任何URL都不被處理,也沒有返回。…

Linux在超級計算機領域一統天下

摘要:在世界超級計算機排行榜500強榜單中,基于Linux的超級計算機占據了462個席位,比率高達92%。基于Windows的超級計算機僅有2個席位,份額為0.4%。中國基于Windows的超級計算機Magic Cube排名94位,澳大利亞基于Windows…

Qtum量子鏈漏洞賞金計劃正式開啟

本次Qtum量子鏈賞金計劃為了更好的借助社區的力量參與到QTUM主網及周邊應用的開發建設中,讓QTUM持續地保持安全、高效的運行,同時能滿足更多用戶的需求。Bug分級與獎勵體系1、如果已經有類似的Issue或者Qtum團隊已經知道并在解決該問題的情況將不適用于該…

.SpelEvaluationException: EL1008E: Property or field ‘cache_department_list_Tree‘ cannot be found

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 報錯如題: .SpelEvaluationException: EL1008E: Property or field cache_department_list_Tree cannot be found on object…

修過的一個android framework原生系統代碼bug

“坑”描述: 在對我們自己研發的一款android終端進行camera拍照壓力測試時,發現當拍照張數達到幾萬張時,查看內存占用情況,發現內存泄露。 填“坑”: frameworks/base/core/jni/android/graphics/YuvToJpegEncoder.…

Koa項目搭建過程詳細記錄

2019獨角獸企業重金招聘Python工程師標準>>> Java中的Spring MVC加MyBatis基本上已成為Java Web的標配。Node JS上對應的有Koa、Express、Mongoose、Sequelize等。Koa一定程度上可以說是Express的升級版。許多Node JS項目已開始使用非關系型數據庫(MongoDB)。Sequel…