cookie 详解
前言: Cookie是指web浏览器存储的少量数据,它与具体的web站点相关。Cookie数据会自动在浏览器和服务器之间传输,因此服务器端也可以读写存储在客户端的Cookie值。在JavaScript中,Cookie用于保存状态,以及为浏览器提供一种身份识别机制。 检测Cookie是否可用:navigator.cookieEnabled Cookie的有效期和作用域  Cookie默认的有效期很短暂,只能持续在浏览器的会话期间。如果想要延长Cookie的有效期,可以通 ...
正则表达式学习笔记
JavaScript中用RegExp对象表示正则表达式,可以用RegExp()构造函数来创建正则表达式,不过更多时候是用对象直接量来创建如: var re = /s$/;这个正则表达式可以匹配以字符s结尾的字符串 1.字符类把字符放进方括号就变成了字符类,一个字符类可以匹配它所包含的任意字符。如:/[abc]/与字母a、b、c中的任意一个都匹配。常见字符类[abc] 方括号内任意字符[^abc] 不在方括号内的任意字符. 除换行符和其他Unicode行终止符之外的任意字 ...
阿里前端实习电话面试(一)
一下子记不全,可能遗漏了一些问题……下面是正文 0.你的项目团队中前端的人数?答:(此处略去20字) 1.谈谈你在项目中用到的技术?答:全部采用原生CSS,JS,Ajax…… 2.CSS如何垂直居中?答:最新使用FlexBox比较多,其他的方法还有display:table-cell、vertical-align:center,position等等 3.如何清除浮动?答:clearfix(此处略去100字),然后我就不知道哪根筋不对,提到了BFC… 4.好吧,你提到了BFC, ...
深入理解 BFC
BFC的定义先看W3C文档 In a block formatting context, boxes are laid out one after the other, vertically, beginning at the top of a containing block. The vertical distance between two sibling boxes is determined by the‘margin’ properties. Vertical ...
什么是 TCP 连接的三次握手
第一次握手:客户端发送syn(syn=j)包到服务器;并进入SYN_SEND状态,等待服务器确认第二次握手:服务器收到syn包,确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 注意:三次握 ...
HTTPS 知识点
1.网景公司首创,所有主要浏览器和服务器都支持此协议2.使用HTTPS时,所有的HTTP请求和响应数据在发送到网络之前,都要进行加密。HTTPS在HTTP和TCP之间加入了一个传输级的安全层,可以使用SSL或者TLS。TLS/SSL中使用了非对称加密、对称加密、Hash算法等。3.密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥。4.数字加密 1)对称密钥加密(DES、RC2、RC4)   加密和解密使用相同的密 ...
null 和 undefined 的区别
1.null和undefined都被用来表示空值,当使用不严格等于号(==)做判断时,他们是等价的。 console.log(null == undefined); // 输出trueconsole.log(null === undefined); // 输出false 这也是为什么我们在代码中判断相等时避免使用== 2.当对null执行typeof运算时,结果返回object,也就是说null是一个对象,表示“空对象”null的典 ...
localStorage 详解
前言:在HTML5出现之前,为了保存用户在网站中一些操作状态,以便于下次打开页面时恢复到上次访问时的一些状态,在浏览器端常常使用Cookie来存储一些信息。最典型的应用是判断用户是否登录过网站。但是,Cookie的大小受限,每个Cookie的大小不超过4KB,浏览器一般只允许存放300个Cookie,而且Cookie也存在安全性问题。 好在HTML5为我们带来了全新的本地存储方式:localStorage,有5M大小,而且从IE8就开始支持了。也就是说IE6、7是不支持l ...
Markdown 简明语法
标题在 Markdown 中,如果一段文字被定义为标题,只要在这段文字前加 # 号即可。# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题 列表在 Markdown 下,列表的显示只需要在文字前加上 - 或 * 即可变为无序列表,有序列表则直接在文字前加1. 2. 3. 符号要和文字之间加上一个字符的空格。_列表内容1. 列表内容 无序列表使用 * + 和 - 来做为列表的项目标记,这些符号是都可以使用的 修辞和强调Mark ...
网页渲染中的重绘与重排
重绘 当改变那些不会影响元素在网页中的位置的元素样式时,譬如background-color(背景色), border-color(边框色), visibility(可见性),浏览器只会用新的样式将元素重绘一次(这就是重绘,或者说重新构造样式)。 重排 当改变影响到文本内容或结构,或者元素位置时,重排或者说重新布局就会发生。这些改变通常由以下事件触发: DOM操作(元素添加,删除,修改,或者元素顺序的改变); 内容变化,包括表单域内的文本改变; CSS属性的计算或改变; 添 ...
随笔#1
现代社会的发展路径不再是一种爬金字塔、熬时间、凭关系、看运气式的呆板线性路径,只要你的创新成果能对他人、社会乃至整个世界形成有意义的影响,你就可以迅速脱颖而出,而这一切与你的年龄、资历、背景无关。这最终从根本上更能激发创新者的出现和创新成果的诞生。 2016.3.6 傍晚 ...
【JavaScript】闭包的概念
背景: 理解闭包,必须首先要理解变量作用域,关于JavaScript的变量作用域,参见我之前的一篇文章《【JavaScript】变量作用域》 JavaScript中的函数都是对象 简而言之,JavaScript函数内部的所有变量对外部是不可见的比如这样的代码会抛出error var test = function(){ var i = 0;}console.log(i); // undefined error 那么怎么让函数访问外部变量呢?Java ...
【JavaScript】变量作用域
背景知识: 编程语言中,作用域控制变量与参数的可见性和生命周期 函数体内,局部变量的优先级高于同名的全局变量 块级作用域:花括号内的每一段代码都具有各自的作用域 1.JavaScript不支持块级作用域JavaScript的函数作用域:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的 function hello() { for (var i = 0; i < 10; i++) { // doSomething... ...
【CSS】文本换行的几个属性
word-wrap:normal | break-word; (内容换行)         normal:默认的属性值(允许内容顶开指定的容器边界) break-word:内容将在边界内换行(不截断英文单词换行,截断英文单词下面的属性才具备这个功能) word-break:normal | break-all | keep-all (词内换行) normal:如果是中文则到边界处的汉字换行,如果是英文整个词换行,注意:如果出现某个英文字符串长度超过边界,则后面的部分将 ...
《深入浅出NodeJS》读书笔记:Node的异步I/O
为什么要异步I/O?消除UI阻塞,快速响应资源 JavaScript是单线程的,它与UI渲染共用一个线程。所以在JavaScript执行的时候,UI渲染将处于停顿的状态,用户体验较差。而异步请求可以在下载资源的时候,JavaScript和UI渲染都同时执行,消除UI阻塞,降低响应资源需要的时间开销。 单线程与多线程的优缺点单线程: 优点:易于表达,符合编程人员的思维方式缺点:阻塞IO,性能差。 多线程: 优点:充分利用多核CPU资源缺点:创建线程和执行期线程上下文切 ...