当前位置:首页 > 知识 > 前端面试题再次整理

前端面试题再次整理

前端面试题再次整理

参考

CSS 指层叠样式表 (Cascading Style Sheets)

Sass (Syntactically Awesome StyleSheets),是由buby语言编写的一款css预处理语言,和html一样有严格的缩进风格,和css编写规范有着很大的出入,是不使用花括号和分号的,所以不被广为接受。 Sass 是一款强化 CSS 的辅助工具,是对 CSS 的扩展,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、继承(extend)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。使用 Sass 以及 Sass 的样式库(如 Compass)有助于更好地组织管理样式文件,以及更高效地开发项目, 其后缀是.sass。

SCSS (Sassy CSS),一款css预处理语言,SCSS 是 Sass 3 引入新的语法,其语法完全兼容 CSS3,并且继承了 Sass 的强大功能。也就是说,任何标准的 CSS3 样式表都是具有相同语义的有效的 SCSS 文件。SCSS 需要使用分号和花括号而不是换行和缩进。SCSS 对空白符号不敏感,其实就和css3语法一样,其后缀名是分别为 .scss。

css和sass的关系

sass是由buby语言编写的一款css预处理语言,和html一样有严格的缩进风格,和css编写规范有着很大的出入,是不使用花括号和分号的,所以不被广为接受。

scss和css的关系

SCSS 和 CSS 写法无差别,这也是 Sass 后来越来越受大众喜欢原因之一。简单点说,把你现有的“.css”文件直接修改成“.scss”即可使用。

sass和scss的关系

sass和scss其实是一样的css预处理语言,SCSS 是 Sass 3 引入新的语法,其后缀名是分别为 .sass和.scss两种。

SASS版本3.0之前的后缀名为.sass,而版本3.0之后的后缀名.scss。

两者是有不同的,继sass之后scss的编写规范基本和css一致,sass时代是有严格的缩进规范并且没有‘{}’和‘;’。

而scss则和css的规范是一致的。

scss

$ 符号来标识变量;把反复使用的css属性值定义成变量;

选择器嵌套

所有数据类型均支持相等运算 == 或 !=,此外,每种数据类型也有其各自支持的运算方式。数字运算: 支持数字的加减乘除、取整等运算 (+, -, *, /, %);

混合器 Mixin,避免不停地重复一段样式

继承是基于类class的(有时是基于其他类型的选择器)允许一个选择器,继承另一个选择器。

插入文件

2.axios和ajax的区别

参考

jQuery ajax

为了更快捷的操作DOM,并且规避一些浏览器兼容问题,产生了jQuery。它里面的AJAX请求也兼容了各浏览器,可以有简单易用的方法$.get,$.post。简单点说,就是对XMLHttpRequest对象的封装。

优点:

对原生XHR的封装,做了兼容处理,简化了使用。

增加了对JSONP的支持,可以简单处理部分跨域。

缺点:

如果有多个请求,并且有依赖关系的话,容易形成回调地狱。

本身是针对MVC的编程,不符合现在前端MVVM的浪潮。

ajax是jQuery中的一个方法。如果只是要使用ajax却要引入整个jQuery非常的不合理。

Axios是一个基于promise的HTTP库,可以用在浏览器和 node.js 中。它本质也是对原生XMLHttpRequest的封装,只不过它是Promise的实现版本,符合最新的ES规范。

优点:

从浏览器中创建XMLHttpRequests

从 node.js 创建 http 请求

支持 Promise API

拦截请求和响应

转换请求数据和响应数据

取消请求

自动转换 JSON 数据

客户端支持防御 XSRF

缺点:

只持现代代浏览器.

闭包和回调地狱

参考

闭包是指有权访问另外一个函数作用域中的变量的函数.可以理解为(能够读取其他函数内部变量的函数)。

闭包结构

闭包的作用: 正常函数执行完毕后,里面声明的变量被垃圾回收处理掉,但是闭包可以让作用域里的变量,在函数执行完之后依旧保持没有被垃圾回收处理掉。

闭包的作用

闭包的缺陷:通过上边的例子也发现, 闭包会导致内存占用过高,因为变量都没有释放内存

回调地狱 参考

回调地狱最主要的就是因为功能逻辑代码嵌套的层次太多,导致可读性降低,维护困难,避免回调地狱的最重要的方面是将功能移开,保持代码简单,不嵌套并分成小模块,也就是多多进行代码封装,将你所要的属性和方法用function关键字包裹起来,而且还要给它取一个有意义的名字,例如:页面上弹框,显示,隐藏,下拉等各个功能小模块,分别用有名函数给包裹起来,少用匿名函数,以便可以重复的多次使用,这也是可以便于程序流程的理解。

以上就是(前端面试题再次整理)全部内容,收藏起来下次访问不迷路!