常用前端知识积累

闭包的理解

使用闭包主要是为了设计私有的方法和变量。

优点是可以避免全局变量的污染,

缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露

Cookie

第一:每个特定的域名下最多生成20个 cookie

1.IE6或更低版本最多20个 cookie

2.IE7和之后的版本最后可以有50个 cookie。

3.Firefox 最多50个 cookie

4.chrome 和 Safari 没有做硬性限制

第二:cookie 的最大大约为4096字节,为了兼容性,一般不能超过4095字节

优点:极高的扩展性和可用性

1.通过良好的编程,控制保存在 cookie 中的 session 对象的大小。

2.通过加密和安全传输技术(SSL),减少cookie被破解的可能性。

3.只在 cookie 中存放不敏感数据,即使被盗也不会有重大损失。

4.控制 cookie 的生命期,使之不会永远有效。偷盗者很可能拿到一个过期的cookie。

缺点:

1.`Cookie` 数量和长度的限制。每个 domain 最多只能有20条cookie,每个 cookie 长度不能超过4KB,否则会被截掉。

2.安全性问题。如果 cookie 被人拦截了,那人就可以取得所有的 session 信息。即使加密也与事无补,因为拦截者并不需要知道 cookie 的意义,他只要原样转发 cookie 就可以达到目的了。

3.有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。

浏览器本地存储

sessionStorage

本地存储一个会话 (session) 中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。

因此 sessionStorage 不是一种持久化的本地存储,仅仅是会话级别的存储

localStorage

用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的

web storage 和 cookie 的区别

Cookie 的大小是受限的,并且每次你请求一个新的页面的时候 Cookie 都会被发送过去,这样无形中浪费了带宽,另外cookie还需要指定作用域,不可以跨域调用

cookie 需要前端开发者自己封装 setCookie, getCookie

link 和 @import 的区别是

(1) link 属于 HTML 标签,而 @import 是 CSS 提供的;

(2) 页面被加载的时,link会同时被加载,而 @import 引用的CSS会等到页面被加载完再加载;

(3) import只在IE5以上才能识别,而 link 是 HTML 标签,无兼容问题;

(4) link方式的样式的权重 高于 @import 的权重.

box-sizing 属性

box-sizing 属性主要用来控制元素的盒模型的解析模式。默认值是content-box

content-box: 让元素维持 W3C 的标准盒模型。元素的宽度/高度由 border  +  padding  +  content 的宽度/高度决定,设置 width/height 属性指的是content部分的宽/高

border-box:让元素维持IE传统盒模型(IE6以下版本和IE6~7的怪异模式)。设置 width/height 属性指的是 border  +  padding  +  content

BFC 规范的理解

摘自链接描述

(https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Block_formatting_context)

级格式化上下文,是CSS中的一个渲染机制,BFC就相当于一个盒子,内部的元素与外界的元素互不干扰。它不会影响外部的布局,外部的布局也不会影响到它.

创建 BFC

float的值不是none

position 的值不是 static 或者 relative

display 的值是 inline-block, table-cell, flex, table-caption 或者 inline-flex

overflow 的值不是 visible

BFC 的特性

- 内部的 BOX 会在垂直方向上一个接一个的放置

- 于同一个 BFC 的俩个相邻的 BOX 的 margin 会发生重叠,与方向无关。

- 每个元素的左外边距与包含块的左边界相接触(从左到右),即使浮动元素也是如此

- BFC 的区域不会与 float 的元素区域重叠

- 计算 BFC 的高度时,浮动子元素也参与计算

- BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然

BFC 在布局中的应用

防止 margin 重叠:

要阻止 margin 重叠,只要将俩个元素别放在一个BFC中即可

浮动相关问题

使得父元素包含子元素,常见的方式是为父元素设置overflow:hidden或者浮动父元素。根本原因在于创建 BFC 的元素,子浮动元素也会参与其高度计算,即不会产生高度塌陷问题

多栏布局的一种方式

与浮动元素相邻的已生成 BFC 的元素不能与浮动元素互相覆盖。利用该特性可以作为多栏布局的一种实现方式.

特点在于左右俩栏的宽度固定,中间栏可以根据浏览器宽度自适应

null和undefined的区别

undefined

undefined 是一个表示”无”的原始值,转为数值时为 NaN

变量被声明了,但没有赋值时,就等于 undefined

调用函数时,应该提供的参数没有提供,该参数等于 undefined

对象没有赋值的属性,该属性的值为 undefined

函数没有返回值时,默认返回 undefined

null

null 是一个表示”无”的对象,转为数值时为0

作为函数的参数,表示该函数的参数不是对象

作为对象原型链的终点

documen.write 和 innerHTML 的区别

document.write 只能重绘整个页面

innerHTML 可以重绘页面的一部分

HTML5的离线存储

原理

HTML5 的离线存储是基于一个新建的 .appcache 文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源,这些资源就会像cookie 一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示

使用

在文档的 html 标签设置 manifest 属性,如 manifest=”/offline.appcache”

在项目中新建 manifest 文件,manifest 文件的命名建议:xxx.appcache

在 web 服务器配置正确的 MIME-type,即 text/cache-manifest

css各种居中

水平居中

inline-block配合text-align

.parent {

    text-align: center;

}

.child {

    display: inline-block;

}

table配合margin

.child {

    display:table;

    margin: 0auto;

}

abasolute配合transform

.parent{

    position:relative;

}

.child{

    position:absolute;

    left:50%;

    transform: translateX(-50%);

}

垂直居中

table-cell配合vertical-align

.parent{

    display: table-cell;

    vertical-align:middle;

}

absolute配合tranform

.parent{

    position:relative;

}

.child{

    position:absolute;

    top: 50%;

    transform: translateY(-50%);

}

水平+垂直居中

inline-block配合text-align加上table-cell配合vertical-align

.parent{

    display: table-cell;

    vertical-align:middle;

    text-align:center;

}

.child{

    display: inline-block;

}

absolute配合transform

.parent{

    position: relative;

}

.child{

    position: absolute;

    left: 50%;

    top: 50%;

    transform: translate(-50%,-50%);

}

全能的flex

水平居中

.parent{

    display: flex;

    justify-content: center;

}

垂直居中

.parent{

    display: flex;

    align-items: center;

}

水平垂直居中

.parent{

    display: flex;

    justify-content: center;

    align-items: center;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,703评论 1 92
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,438评论 0 6
  • <a name='html'>HTML</a> Doctype作用?标准模式与兼容模式各有什么区别? (1)、<...
    clark124阅读 3,451评论 1 19
  • 一大早,怀拽着忐忑、豁出去的心态上了秤,让我万万没想到的是,体重竟然还是56.1,我简直怀疑这个秤有问题了,怎么会...
    6830e983870f阅读 170评论 0 0
  • 栀子吐香笼满城 风来樱短苦雨更 换得绿荫草长时 碧水杨波荷花盛
    RepoMen阅读 198评论 0 1