常见总结
JavaScript的数据类型 6种
object number function boolean undefined string
基本数据类型:数值型、字符串型和布尔型;Number String Boole
数组去重
最简单的还是用ES6的Set方法去重
https://www.cnblogs.com/mahmud/p/10283343.html
JavaScript设计模式浅析
http://blog.alanwu.site/2020/03/17/designMode/
性能优化和跨域的解决方法
什么是作用域链?
原型与原型链
- 所有原型链的终点都是 Object 函数的 prototype 属性
- 每一个构造函数都拥有一个 prototype 属性,此属性指向一个对象,也就是原型对象
- 原型对象默认拥有一个 constructor 属性,指向指向它的那个构造函数
- 每个对象都拥有一个隐藏的属性 __ proto __,指向它的原型对象
Gulp
Gulp 就是为了规范前端开发流程,实现前后端分离、模块化开发、版本控制、文件合并与压缩、mock数据等功能的一个前端自动化构建工具。说的形象点,“Gulp就像是一个产品的流水线,整个产品从无到有,都要受流水线的控制,在流水线上我们可以对产品进行管理。”
另外,Gulp是通过task对整个开发过程进行构建。
Webpack
Webpack 是当下最热门的前端资源模块化管理和打包工具。它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。还可以将按需加载的模块进行代码分隔,等到实际需要的时候再异步加载。通过 loader的转换,任何形式的资源都可以视作模块,比如 CommonJs 模块、AMD 模块、ES6 模块、CSS、图片、JSON、Coffeescript、LESS 等
gulp严格上讲,模块化不是他强调的东西,他旨在规范前端开发流程。
webpack更是明显强调模块化开发,而那些文件压缩合并、预处理等功能,更像是附带的功能。
防抖和节流 https://www.jianshu.com/p/b7b698db8352
html:负责定义页面的内容
css:负责定义页面的样式
javascript:负责控制页面的行为
以上三种为前端学习的基本课程
jquery:javascript框架,javascript函数库,极大简化了javascript。
bootstrap:一个用于快速开发 Web 应用程序和网站的前端框架。
AngularJS: 是一个 JavaScript 框架。
JSON: 是存储和交换文本信息的语法.
Ajax: 可以用于创建快速动态的网页。AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
Angular 2:是一个开源的JavaScript框架
React: 是一个用于构建用户界面的 JAVASCRIPT 库。React主要用于构建UI .
LESS:是一个CSS预处理器,可以为网站启用可自定义,可管理和可重用的样式表。是一种动态样式表语言,扩展了CSS的功能
Vue.js :是用于构建交互式的 Web 界面的库。
Node.js :是运行在服务端的 JavaScript。
那么在移动端如何配置视口呢? 简单的一个meta标签即可!
<meta name="viewport" content="width=device-width; initial-scale=1; maximum-scale=1; minimum-scale=1; user-scalable=no;">
rem适配
举个例子:
//假设我给根元素的大小设置为14px
html{
font-size:14px
}
//那么我底下的p标签如果想要也是14像素
p{
font-size:1rem
}
//如此即可
复制代码
rem的布局 不得不提flexible,flexible方案是阿里早期开源的一个移动端适配解决方案,引用flexible后,我们在页面上统一使用rem来布局。
ES6的新特性 http://blog.alanwu.site/2020/03/11/ES6/
- let、var、const区别
- 箭头函数
- 解构赋值
- 模板字符串
- Set、Map数据结构
- Promise对象
- Proxy
cookie与session
- cookie保存在客户端(浏览器);session保存在服务端(redis)
- Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间
例子:
当客户端第一次请求登录服务器的时候,服务器随机下发一个字符串sessionId给浏览器,以cookie的形式保存在客户端。当下次登录的时候会带上这个cookie,从而识别你是谁。
cookie的优点:
1.极高的扩展性和可用性 2.通过良好的编程,控制保存在cookie中的session对象的大小。 3.通过加密和安全传输技术(SSL),减少cookie被破解的可能性。 4.只在cookie中存放不敏感数据,即使被盗也不会有重大损失。 5.控制cookie的生命期,使之不会永远有效。偷盗者很可能拿到一个过期的cookie。
cookie的缺点:
1.cookie数量和长度的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉。 2.安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。即使加密也与事无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了。 3.有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。
Cookie、sessionStorage、localStorage的区别
特性 | cookie | localStorage | sessionStorage | indexDB |
---|---|---|---|---|
数据生命周期 | 一般由服务器生成,可以设置过期时间 | 除非被清理,否则一直存在 | 页面关闭就清理 | 除非被清理,否则一直存在 |
数据存储大小 | 4K | 5M | 5M | 无限 |
与服务端通信 |
每次都会携带在 header 中,对于请求性能影响 cookie在浏览器和服务器间来回传递 |
不会自动把数据发给服务器,仅在本地保存 | 不会自动把数据发给服务器,仅在本地保存 | 不参与 |
重要的是多刷题,可以看剑指offer,leetcode!
参考答案
#parent:after{
content
:
"."
;
height
:
0
;
visibility
:
hidden
;
display
:
block
;
clear
:
both
;
}
参考答案
1
2
3
|
var obj = {}; obj.__proto__ = Base.prototype; Base.call(obj);
|
参考答案
参考答案
参考答案
参考答案
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
function clone(Obj) { var buf; if (Obj instanceof Array) { buf = []; // 创建一个空的数组 var i = Obj.length; while (i--) { buf[i] = clone(Obj[i]); } return buf; } else if (Obj instanceof Object){ buf = {}; // 创建一个空对象 for ( var k in Obj) { // 为这个对象添加新的属性 buf[k] = clone(Obj[k]); } return buf; } else { return Obj; } } |