小记面试题-2021

LinMeng 等级 1054 0 0

CSS类

1.解释浮动及其工作原理

浮动的元素可以向左或者向右移动,直到它的外边缘碰到包含元素(父元素)或另一个浮动元素的边框为止。要想使元素浮动,必须为元素设置一个宽度。虽然浮动的元素已不在文档流中, 但是它浮动后所处的位置依然在浮动之前的水平方向上。因为浮动元素不在文档流中,所以文档流中的块元素表现的就像浮动元素不存在一样,下面的元素会填补原来的位置。有些元素会在浮动元素的下方,但是这些内容的元素不一定会被浮动元素遮盖,当定位内联元素时,要考虑浮动元素的边界,围绕浮动元素放置内联元素。也可以把浮动元素想象成被块元素忽略的元素,而内联元素会关注的元素。

2.position:absolute和float属性的异同

共同点是对内联元素设置float和absolute属性,可以让元素脱离文档流,并且可以设置其宽高。 不同点是float仍可占据位置,不会覆盖在另一个BFC区域上,浮动的框可以向左或向右移动,直到其外边缘碰到包含框或另一个浮动框的边框为止。absolute覆盖文档流中的其他元素,即遮盖现象。。

3.说说你知道的css3新特性。

圆角(birder-radius),阴影(box-shadow)、对文字加特效(text-shadow),线性渐变(gradient),变换(transform)等等。

4.rgba()和opacity的透明效果有什么不同?

rbga()和opacity都能实现透明效果,但是最大的不同在于opacity是作用于元素,并且可以设置元素内所有内容的透明度;而rgba()只作用于元素的颜色或其背景色---设置rgba透明的元素的子元素不会继承透明的效果。

JavaScript

1.说说你对闭包的理解。

使用闭包只要是为了设计私有变量和方法。闭包的优点是可以避免全局变量的污染;缺点是闭包会常驻内存中,增加内存使用量,使用不当很容易造成内存泄漏,在JavaScript中,函数即闭包,只有函数才会产生作用域。 闭包有3个特性:

  1. 函数嵌套函数
  2. 在函数内部可以引用函数外部的参数和变量
  3. 函数和变量不会以垃圾回收机制回收

    2.简单说说new操作符的作用。

    作用如下:
  4. 创建一个空对象
  5. 由this变量引用该对象
  6. 该对象继承该函数的原型(更改原型链的指向)
  7. 把属性和方法加入到this引用的对象中。
  8. 新创建的对象由this引用,最后隐式地返回this,过程可以了解一下:
    var obj={};
    obj.__proto__ =Base.prototype;
    Base.call(obj);

    3. 说说你知道的那些操作会造成内存泄露。

    内存泄露指不再拥有或需要任何对象(数据)之后,他们仍然存在于内存中。 提示:垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为0,或该对象的唯一引用是循环,那么该对象占用的内存立即被回收。 如果setTimeout的第一个参数使用字符串而非函数,会引发内存泄漏。 闭包,控制台日志,循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)等会造成内存泄露。

Vue

1.vue-router是什么?它有哪些参数?

导航钩子又称导航守卫,又分为全局钩子,单独酷游独享钩子和组件级钩子。 全局钩子有beforeEach,beforeResolve,afterEach 单个路由独享钩子有beforeEnter 组件级钩子有beforeRouterEnter,beforeRouterUpdate,beforeRouterLeave.它们有以下参数:

  1. to 即将要进入的路由目标对象
  2. from 当前导航正要离开的路由
  3. next 一定要用这个函数才能到达下一个路由,若不用就会遭到拦截。

2. 你是怎么认识vuex的?

vuex可以理解为是一种开发模式或框架,它是对Vue.js框架数据层面的扩展,通过状态(数据源)集中管理驱动组件的变化,应用的状态集中放在store中,改变状态的方式是提交mutations,这是个同步的事务,异步逻辑封装在action中。

3.描述Vue.js的特点。

  1. 简洁--页面由HTML模板+JSON数据+Vue.js实例化对象组成。
  2. 数据驱动--自动计算属性和追踪依赖的模板表达式
  3. 组件化--用可复用,解耦的组件来构造页面
  4. 轻量--代码量小,不依赖其他库
  5. 快速--精确而有效地批量实现DOM更新
  6. 易获取--精确而有效地批量实现DOM更新

其他

1.XSS 攻击是什么?如何防护?

:xss( Cros Site Seripting)攻击指码是攻击者向 Web 页面里插入恶意 HTML标签或者 JavaScript代码,比如,攻击者在论坛中放一个看似安全的链接,骗取用户单击并窃取 cookie 中的用户私密信息;或者攻击者在论坛中加一个恶意表单,当用户提交表单的时候,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任站点。 要防范 XSS攻击,首先,在代码里对用户输入的地方和变量都需要仔细检查长度和对“<”“>”";"","等字符做过滤。其次,在把任何内容写到页面之前都必须进行编码,避免泄露 htmltag。在这一个层面做好,至少可以防止超过一半的 XSS 攻击。

2.说说 Git 中 merge 和 rebase 的区别。

在Git中,merge 和rebase 从最终效果来看没有任何区别,都是将不同分支的码融合在一起,但是生成的代码树稍有不同。rebase 操作不会生成新的节点,而是两个分支融合成一个线性的提交。而merge 操作生成的代码树会显得比较乱。

收藏
评论区

相关推荐

Gradle技术之四 - Gradle的Task详解
1 Gradle的Task详解 1 Task定义和配置 2 Task的执行 3 Task的依赖和执行顺序 4 Task类型 5 Task结合gradle的生命周期 6 Task实战 1.1 Task定义和配置 1.1.1 查看所有的task java ./gradlew tasks 输出 Task :tasks
linux基础命令1
language date date %Y/%m/%d date %H:%M:%S cal cal 2021 cal 01 cal 01 2021 cal 1 2021 bc scale3 quit tab tab tab ctrl c ctrl d shift pageUp shift p
数据库系统概论
一、范式与规范 1.1 一个二元组一定属于BCNF eg: R {A, B, C},{B C, BA } 等价于{B AC} 1.2 求候选码 1. 列出左右出现的元素:L, R, LR,N。(当右边出现组合元素时,拆分开来) 1. 从(L N) 中的元素开始求闭包,能推出所有元素则一定是唯一的候选码。 1. 如果L中的闭包推不出
半小时掌握Android Gradle
目前国内对Android领域的探索已经越来越深,不少技术领域如插件化、热修复、构建系统等都对Gradle有迫切的需求,不懂Gradle将无法完成上述事情。所以Gradle必须要学习。 Gradle 里的几乎任何东西都是基于这两个基础概念: task project 掌握了这两个,你就掌握了一大半的 Gradle 知识了。 首先讲 Task
Groovy 集合与闭包
Groovy 集合 在 Groovy 提供的所有方便的快捷方式和功能中,最有帮助的一个可能就是内置的 集合。回想一下在 Java 编程中是如何使用集合的 — 导入 java.util 类,初始化集合,将项加入集合。这三个步骤都会增加不少代码。 而 Groovy 可以直接在语言内使用集合。在 Groovy 中,不需要导入专门的类,也不需要初始化对象。集合是语
Groovy中的类
Groovy 中的类 迄今为止,您已经用 Groovy 输出了许多次 “Hello World”,已经操作了集合,用闭包在集合上迭代,也定义了您自己的闭包。做所有这些工作时,甚至还没有讨论那个对 Java 开发人员来说至关重要的概念 — 类。 当然,您已经在这个教程中使用过类了:您编写的最后几个示例就是在不同类的 main() 方法中。而且,您已经知道,在
彻底理解js的作用域链
在之前的文章(https://www.helloworld.net/p/G4dFV7tALU4J)中我已经介绍了执行上下文的变量对象。在这一篇文章我要介绍执行上下文的作用域链了。 执行上下文.作用域链(scope chain) 作用域链与变量对象有着密不可分的关系,因为作用域链就是变量对象的数组!其中第
彻底理解js闭包
在文章开头,我先放出MDN给出的定义: 闭包是指那些能够访问独立(自由)变量的函数 (变量在本地使用,但定义在一个封闭的作用域中)。换句话说,这些函数可以“记忆”它被创建时候的环境。 现在不需要看懂它,我会在第一个例子中解释清楚它的意思。让我们开始吧! 2018.3.20更新:现在MDN上的定义已经改为:"A closure is the comb
Python 中的闭包
闭包定义: 如果在一个内部函数里,对在外部作用于(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包 Python 中的闭包 原文出处: 田小计划(http://www.cnblogs.com/wilber2013/p/4658894.html) 闭包(closure)是函数式编程的重要的语法结构
swift - Alamofire 4.0
  在这前,已经介绍并学习过AFNetworking(http://www.cnblogs.com/chenxianming/p/5674652.html)源码了,现在通过阅读学习Alamofire最新源码同时,学习swift 3.0这门语言,虽然
JS核心原理理解闭包
前置概念在正式看闭包之前,我们先来学习一下前置知识,那就是JS中的作用域,我们知道,在ES5之中,作用域分为两种:全局作用域和函数作用域,随着ES6的到来,新增了块级作用域,想更好的理解闭包,那么搞清楚作用域是首要条件全局作用域我们知道,对于变量而言,我们一般会分成两类:全局变量和局部变量,一般定义在最外围环境的为全局变量,定义在函数当中的为局部变量,在we
JS - 从执行上下文的角度来理解闭包
今天看到一篇关于闭包的文章,里面有这样一句话 “就我而言对于闭包的理解仅止步于一些概念,看到相关代码知道这是个闭包,但闭包能解决哪些问题场景我了解的并不多”,这说的不就是我么,每每在面试中被问及什么是闭包,大部分情况下得到的答复是(至少我以前是)A函数嵌套B函数,B函数使用了A函数的内部变量,且A函数返回B函数,这就是闭包。而往往面试官想要听到的并不是这样的
重学JavaScript(函数)闭包
序言学习JavaScript切勿好高骛远。正所谓贪多嚼不烂,前端标准和工具这几年的飞速发展,以及不时冒出的“新鲜玩意”让众多前端从业者惊呼:“学不动啦学不动啦!学习速度跟不上技术发展速度!我感到手忙脚乱、力不从心……"如果你有以上“症状”,请勿着急,这不过是你内心不安造成的。你为何追新?你又何苦追新?在根基不牢的情况下,就算盖楼盖到18层,再往上堆一块砖,都
你不可不知的JS面试题(第三期)
1、什么是闭包?如图所示,闭包就是一个定义在函数内部的函数,其作用是将函数内部和函数外部连接起来。大家知道,作用域的问题,就是在函数内部定义的变量称为局部变量,外部取不到值。下面我们通过代码来更加详细地看一下: function A()        let x  1;        return function B()            c
小记面试题-2021
CSS类 1.解释浮动及其工作原理浮动的元素可以向左或者向右移动,直到它的外边缘碰到包含元素(父元素)或另一个浮动元素的边框为止。要想使元素浮动,必须为元素设置一个宽度。虽然浮动的元素已不在文档流中, 但是它浮动后所处的位置依然在浮动之前的水平方向上。因为浮动元素不在文档流中,所以文档流中的块元素表现的就像浮动元素不存在一样,下面的元素会填补原来的位置。有些