1 | cache狭义指的是CPU和RAM主存之间的Cache(利用比较昂贵的SRAM) 而且在内存和硬盘之间也有Cache(磁盘缓存) |
1 | ASCII = 美国信息交换标准代码 |
1 | Unicode=国际码=国际字符和二进制数字的对应关系 |
1 | UTF-8 就是在互联网上使用最广的一种 Unicode 的实现方式。 |
1 | UTF-8 最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。 |
1 | UTF-8 的编码规则很简单 只有二条: |
1 | URL编码 == 百分号编码 |
使用同一个[TCP连接]来发送和接收多个[HTTP请求/应答]
1 | HTTP 1.0 => 如果浏览器支持 keep-alive => 请求头中添加 Connection: Keep-Alive => 服务器收到请求添加 Connection: Keep-Alive => 保持连接 |
1 | HTTP 2.0 不会线头阻塞 同时通过单一的 HTTP/2 连接发起多重的请求-响应消息 |
CGI: 通用网关接口 连接web服务器和应用程序的接口
WSGI: Python的CGI包装
1 | 但是在IPv4地址协议中预留了3个IP地址段,作为私有地址,供组织机构内部使用。 |
1 | 1**(信息类):表示接收到请求并且继续处理 |
1 | 服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码 |
1 | 1.application/x-www-form-urlencoded |
1 | DNS污染主要原理: |
补充:绕过DNS后如果遇到了IP封锁仍然会访问失败。
NAT=网络地址转换(Network Address Translation)
wifi=内网ip->公网ip->请求主机
1 | 浏览器的五个常驻线程: |
区别于GET, POST, DELETE, PUT
1 | 跨域资源共享标准新增了一组 HTTP 首部字段,允许服务器声明哪些源站有权限访问哪些资源。 |
如何减少OPTIONS预检频率? 答案:Access-Control-Max-Age: 86400
1 | -DNS解析 (查询 DNS 浏览器缓存,系统缓存,路由器缓存,IPS服务器缓存,根域名服务器缓存,顶级域名服务器缓存,主域名服务器缓存) -> |
1 | // T0 |
1 | // T1.0 |
1 | 回流: reflow, 浏览器得知元素产生了对文档树排版有影响的样式变化,对所有受影响的dom节点进行重新排版工作 |
1 | 1.通过 Meta 标签控制: |
IE4-9: Trident
IE10+: EdgeHTML
FireFox: Gecko
Opera: Presto
Safari: Webkit
Chrome: Webkit
1 | 触屏网页的 tap 与 click : |
1 | LocalStorage 同源则 => 可以 |
1 | [协议]+[端口]+[域名] 都相同 |
1 | ES6常用新特性: |
1 | // throttle 节流 |
1 | ES6的模块化的基本规则或特点 |
1 | import 命令会被 JavaScript 引擎静态分析 先于模块内的其他语句执行 |
1 | Symbol可以在set对象property的时候保证不会发生覆盖 |
1 | //错误用法 |
1 | 1.纯粹的函数调用: this === 全局对象 |
1 | (1)所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。 |
1 | 除了广义的同步任务和异步任务,我们对任务有更精细的定义: |
1 | setTimeout(() => {console.log(1)}, 0); |
1 | console.log(0); |
1 | function DOG(name){ |
1 | // Promise 是包含 pending fufilled rejected 三种状态的状态机 开发者可以指定未来发生的事件 |
1.标记清除: 变量离开执行环境就收回
2.引用计数: 简单粗暴 会受循环引用影响//(中虽然JavaScript对象通过标记清除的方式进行垃圾回收,但BOM与DOM对象却是通过引用计数回收垃圾的, 也就是说只要涉及BOM及DOM就会出现循环引用问题)
1 |
|
1 | //本质原理 |
1 | typeof(undefined); // undefined |
1 | let arr = [1, 2, 3] |
1 | let obj = {}; |
1 | Object.prototype.c = 1; // 把属性c放在 Object 原型链上 |
1 | 1.箭头函数不会创建自己的this 只会从自己的作用域链的上一层继承this ☆ |
1 | XSS: 跨站脚本攻击 |
1 | CSRF: 跨站请求伪造 |
1 | hash模式: [hash 改变] + [监听 hashChange] + [route map 执行回调] |
1 | -webkit-animation: ani-load 0.2s linear infinite; |
1 | transform: rotate(-25deg) translateX(30px); // 这种先rotate的写法 会把整个坐标系先旋转-25°再平移30px 也就是会向斜上方平移 |
1 | <div class="wrap-a"> |
1 | .wrap-a { |
经典圣杯
1 | <div class="wrap"> |
1 | .wrap { |
Flex圣杯
1 | <div class="container"> |
1 | .container{ |
中间固定-两端自适应(PC打开移动页面)
1 | <div class="container"> |
1 | #left, #right { |
Flex 一线天
1 | <div class="container"> |
1 | .container { |
经典居中
1 | .container { |
transform居中
1 | .container { |
flex居中
1 | .container { |
1 | flex: flex-grow flex-shrink flex-basis|auto|initial|inherit; |
1 | 为了便于客户端使用数据,逐渐形成了一种非正式传输协议,人们把它称作JSONP。 |
1 | 误解: jQuery Zepto之类的库把Ajax方法和jsonp方法封装在一起是容易产生误解的。 |
1 | => 多进程 |
1 | Express 有几个比较重要的概念: 中间件 路由 模版引擎 |
1 | app.use: |
1 | router对象的主要作用: |
1 | ejs / jade 将数据和模板整合最终生成 html 文件 |
[1]声明式和表达式规范
结构:应符合[变量-业务逻辑-函数声明]的结构规范
[函数声明式]与[函数表达式]在js解释器预编译阶段存在区别
[函数声明式]函数声明和他的赋值都会被提前
1 |
|
[函数表达式]和变量一样[声明被提前]而[赋值并不被提前]
1 |
|
结构:应符合[变量-业务逻辑-函数声明]的结构规范
[2]注释规范
注释:用醒目多行注释对函数表达式的[参数类型]和[返回值类型]进行注释
1 |
|
解决iOS中文键盘滚动的遮挡问题
1 | #import "ViewController.h" |
iOS存储区
1 | Documents/ |
1 | function qsort(arr) { |
1 | Array.prototype.copy = function() { |
1 | function mergeSort(arr){ |
1 | function bin (list, target) { |
1 | function fib (x) { |
1 | function fib (x) { |
1 | function kvcf() { |
1 | 求解: |
1 | reducer 必须是纯函数 必须返回一个新state 不能直接修改老state |
1 | 1. vue的设计倾向于一个Library | 而Angular倾向于一个Framework |
1 | beforeCreate => created => beforeMount => mounted => beforeDestroy => destroyed |
1 | // <div id="app"> |
1 | Observer: 数据的观察者,让数据对象的读写操作都处于自己的监管之下 |
1 | // 主要在执行异步事件时 |
1 | v-for => 使用就地复用原则 |
1 | Vue 异步组件只在实际需要渲染组件时 才触发调用工厂函数 |
1 | // Cordova |
1 | // RN |
1 | 安装 |
1 | 启动 |
1 | safari无痕浏览模式 |
1 | 强类型: 偏向于[不容忍][隐式类型转换] |
1 | 1.单体/单例模式: 一个类只能保证有一个实例 例如对象字面量的方式创建一个单例 |
1 | 2.1.观察者模式 |
1 | 3.工厂模式 |
1 | '2' in {'2': 2}; // true |
1 | 开发=>开发打包=>开发自测=>测试环境打包=>测试(测试同学直接去下载测试包)=>正式发版本=>更新到渠道 |
1 | nvm管理node版本 |
1.2.2 => 大版本号.次要版本号.小版本号
1 | 波浪号(tilde)+指定版本:安装时不改变大版本号和次要版本号。 |
1 | 控制台打印的[折叠的][按引用传]的对象,把折叠打开后才拿到折叠起来的值。 |
1 | 可以在服务端配跨域access-allow-origin为'null' |
1 | xhr.withCredentials |
1 | base64图片为纯本地图片-不需要发网路请求 |
1 | 1.可以使用css代替的标签 |
1 | transform => 不会触发 repaint |
1 | 1.border-image |
1 | 一次读取一行 边读边处理边写 |
1 | <<<<<<< HEAD |
1 | git checkout -b apple origin/apple |
1 | 工作区 (Working Directory): |
1 | 1.Tree Shaking: 剔除无用 JS 死代码 |
1 | 移动端调试:直接localhost换成真实ip访问 |
原文:https://www.cnblogs.com/lijianming180/p/12432973.html