小记面试题-2021

LinMeng 等级 1265 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 操作生成的代码树会显得比较乱。

收藏
评论区

相关推荐

半小时掌握Android Gradle
目前国内对Android领域的探索已经越来越深,不少技术领域如插件化、热修复、构建系统等都对Gradle有迫切的需求,不懂Gradle将无法完成上述事情。所以Gradle必须要学习。 Gradle 里的几乎任何东西都是基于这两个基础概念: task project 掌握了这两个,你就掌握了一大半的 Gradle 知识了。 首先讲 Task
Groovy 集合与闭包
Groovy 集合 在 Groovy 提供的所有方便的快捷方式和功能中,最有帮助的一个可能就是内置的 集合。回想一下在 Java 编程中是如何使用集合的 — 导入 java.util 类,初始化集合,将项加入集合。这三个步骤都会增加不少代码。 而 Groovy 可以直接在语言内使用集合。在 Groovy 中,不需要导入专门的类,也不需要初始化对象。集合是语
彻底理解js闭包
在文章开头,我先放出MDN给出的定义: 闭包是指那些能够访问独立(自由)变量的函数 (变量在本地使用,但定义在一个封闭的作用域中)。换句话说,这些函数可以“记忆”它被创建时候的环境。 现在不需要看懂它,我会在第一个例子中解释清楚它的意思。让我们开始吧! 2018.3.20更新:现在MDN上的定义已经改为:"A closure is the comb
Python 中的闭包
闭包定义: 如果在一个内部函数里,对在外部作用于(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包 Python 中的闭包 原文出处: 田小计划(http://www.cnblogs.com/wilber2013/p/4658894.html) 闭包(closure)是函数式编程的重要的语法结构
重学JavaScript(函数)闭包
序言学习JavaScript切勿好高骛远。正所谓贪多嚼不烂,前端标准和工具这几年的飞速发展,以及不时冒出的“新鲜玩意”让众多前端从业者惊呼:“学不动啦学不动啦!学习速度跟不上技术发展速度!我感到手忙脚乱、力不从心……"如果你有以上“症状”,请勿着急,这不过是你内心不安造成的。你为何追新?你又何苦追新?在根基不牢的情况下,就算盖楼盖到18层,再往上堆一块砖,都
小记面试题-2021
CSS类 1.解释浮动及其工作原理浮动的元素可以向左或者向右移动,直到它的外边缘碰到包含元素(父元素)或另一个浮动元素的边框为止。要想使元素浮动,必须为元素设置一个宽度。虽然浮动的元素已不在文档流中, 但是它浮动后所处的位置依然在浮动之前的水平方向上。因为浮动元素不在文档流中,所以文档流中的块元素表现的就像浮动元素不存在一样,下面的元素会填补原来的位置。有些
go 学习笔记之10 分钟简要理解 go 语言闭包技术
**闭包**是主流编程语言中的一种**通用技术**,常常和**函数式编程**进行强强联合,本文主要是介绍 `Go` 语言中什么是闭包以及**怎么理解闭包**. 如果读者对于 `Go` 语言的闭包**还不是特别清楚**的话,可以**参考上一篇文章** [go 学习笔记之仅仅需要一个示例就能讲清楚什么闭包](https://www.oschina.net/ac
JS 闭包(内存溢出与内存泄漏)(垃圾回收机制)
**1.有关闭包定义** 闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的 方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量 闭包的特性: 函数内再嵌套函数 内部函数可以引用外层的参数和变量 参数和变量不会被垃圾回收机制回收
Java并发中常用同步工具类
同步工具类可以是任何一个对象,只要它根据其自身的状态来协调线程控制流。阻塞队列(BlockingQueue)可以作为同步工具类,其他类型的同步工具类还包括信号量(Semaphore),栅栏(Barrier)以及闭锁(Latch)。在平台类库中还包含其他一些同步工具类的类,如果这些类还无法满足需要,那么可以创建自己的同步工具类。 ### **闭锁Latch*
java成神之——Stream和Optional
<!-- TOC --> * Stream流 * 基本使用 * 流关闭 * 平行流 * 流重用 * iterator转换成流 * 分组计数 * 无限流 * 流转集合 * 压缩流 * 统计数值流 * 集合转换流遍历
PHP闭包
### [转载自](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fwww.cnblogs.com%2Fyjf512%2Farchive%2F2012%2F10%2F29%2F2744702.html) ### ### php的闭包(Closure)也就是匿名函数。是PHP5.3
Golang闭包案例分析与普通函数对比
闭包案例 package main import ( "fmt" "strings" //记住一定引入strings包 ) //①编写一个函数makeSuffix,可以接收一个文件后缀名(比如.jpg),并返回一个闭包 //②调用闭包,可以传入一个文件名,如果该文件名没有指
JavaScript函数——闭包
### 闭包 #### 概念 只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁 **例子** function outer(){ var localVal = 30; return localVal; }
Python嵌套函数 闭包
1\. 什么是嵌套函数 -----------   嵌套函数就是在函数中定义函数,英文叫`nested function` def outer(x):    def inner():        print(x)    inner() 这也很好理解,在函数`outer`中定义了另外一个函数`inner`,而`inner`也必须在`outer`
swift闭包表达式和尾随闭包
我们从一个Swift函数说起。并以此为例子。 Swift的标准库提供了一个叫做sorted(by:)的方法,会根据你**提供的排序闭包**将已知类型的数组的值进行排序。一旦它排序完成,sorted(by:)方法会返回与原数组类型大小完全相同的一个新数组,该数组的元素是已排序好的。原始数组不会被sorted(by:)方法修改。 我们以soted方法为例子