【前端面试】字节跳动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.mzph.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

优秀产品页设计:将访问者转化成客户

摘要:本文是对外文《 Better Product Pages: Turn Visitors Into Customers 》的翻译,编译内容如下: 展示产品、服务的方法是其获得成功的关键。在Web上,你留给用户的第一印象是至关重要的。 如果有人访问你的网站,一定…

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…

Linux在超级计算机领域一统天下

摘要:在世界超级计算机排行榜500强榜单中,基于Linux的超级计算机占据了462个席位,比率高达92%。基于Windows的超级计算机仅有2个席位,份额为0.4%。中国基于Windows的超级计算机Magic Cube排名94位,澳大利亚基于Windows…

Koa项目搭建过程详细记录

2019独角兽企业重金招聘Python工程师标准>>> Java中的Spring MVC加MyBatis基本上已成为Java Web的标配。Node JS上对应的有Koa、Express、Mongoose、Sequelize等。Koa一定程度上可以说是Express的升级版。许多Node JS项目已开始使用非关系型数据库(MongoDB)。Sequel…

Equation漏洞混淆利用分析总结(下)

样本三 如下所示在该样本中,使用了Ole10Native的流,因此没有equative head,默认读取红框中的4位长度。之后的metf head为01. 可以看到metf head的长度为01时,直接进入到if判断中(该if中的函数实际是一个异常处理函数,但…

5 个常用的软件质量指标

在软件开发中,软件质量是衡量软件是否符合需求、标准的重要体现。除了 代码质量外,影响软件整体质量的因素还有很多。因此,要确保软件的整体质量,就需要在各个环节严格控制。本文列出了衡量软件质量的5个最常用的指标。1. SLOC&a…

介绍一个对陌生程序快速进行性能瓶颈分析的技巧

前言 工作多年,一直做的是curd系统。前几年做的系统应用场景,大多对数据库依赖比较重。例如报表统计,数据迁移,批量对账等。所以这些系统出现性能瓶颈一般出在数据库操作上面。 如果程序因为数据库操作出现性能瓶颈是比较好办的&a…

掌握穷变富的12条原则 迅速从普通人变成有钱人

“穷忙”和“富闲”是对立面,“穷”对“忙”,“富”对“闲”,很多“穷忙女”是在拿青春当赌注,希望自己今天的“美丽”明天就能在市场上有个不错的“回报”;而多数“富闲女”则是在拿智慧当筹码,既不可替代…

windows下安装和设置gradle

一、安装前检查 检查jdk是否已经安装 二、下载gradle 1. https://gradle.org/releases/ 2.设置gradle环境变量 3. 环境变量中增加名为GRADLE_HOME的变量名,值为Gralde的解压路径,例如D:\Gradle 在path的后追加%GRADLE_HOME%\bin; 4. 验证 5.修改默认缓存目录 修改Gradle默认缓存…

赚大钱一定要选择

赚大钱一定要选择 八大赚钱定律让你赚翻天 许多人看起来已经步入小康了,但他们还说不上是真正的富人,从科学理财的观念看,凭高收入和攒钱来实现富裕的思路完全是错误的,依靠攒钱,不仅多数人无法获得最终的财务自由&…

深解微服务架构:从过去,到未来

http://www.uml.org.cn/zjjs/im... 微服务的诞生 微服务架构(MicroserviceArchitect)是一种架构模式,它提倡将单块架构的应用划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立…

解决IntelliJ Idea中文乱码问题、修改IDEA编码

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 有两种办法可以修改 IntelliJ IDEA 的文件编码(IDE 版本为 14.1.4) File->Settings->Editor->File En…

前端框架开始学习Vue(一)

MVVM开发思想图(图片可能会被缩小&#xff0c;请右键另存查看&#xff0c;图片来源于网络)定义基本Vue代码结构1 v-text,v-cloak,v-html命令默认 v-text没有闪烁问题&#xff0c;但是会覆盖元素中原本的内容&#xff0c;插值表达式只会替换自己的占位符,<!DOCTYPE html> …

P1616 疯狂的采药(洛谷,动态规划递推,完全背包)

先上题目链接:P1616 疯狂的采药 然后放AC代码: #include<bits/stdc.h> #define ll long long using namespace std; ll f[100010]; ll timee[10010]; ll w[10010]; int main() {ll t,m;cin>>t>>m;//t总时间,m总草药//time时间,w价值for(ll i1;i<m;i){scan…

MySQL通过source命令执行sql文件

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 IT人员经常会和MySQL打交道&#xff0c;备份和恢复应该是最常用的操作了&#xff0c;那么通过直接执行sql文件无疑是最快捷的方式&#x…

MySQL索引底层实现原理

索引的本质 MySQL官方对索引的定义为&#xff1a;索引&#xff08;Index&#xff09;是帮助MySQL高效获取数据的数据结构。提取句子主干&#xff0c;就可以得到索引的本质&#xff1a;索引是数据结构。 我们知道&#xff0c;数据库查询是数据库的最主要功能之一。我们都希望查询…

解决 A component required a bean of ‘XXX.RoleService‘ that could not be found.

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 springboot工程启动报错&#xff0c;无法启动成功。 dubbo订阅服务失败&#xff0c;提示如下&#xff1a; 出错原因&#xff1a;唉&…

配合OAuth2进行单设备登录拦截

2019独角兽企业重金招聘Python工程师标准>>> 要进行单设备登录&#xff0c;在其他地点登录后&#xff0c;本地的其他操作会被拦截返回登录界面。 原理就在于要在登录时在redis中存储Session,进行操作时要进行Session的比对。 具体实现&#xff0c;假设我们的OAuth 2…