插件
Beautify
chinese Language
open in browser
Vetur
minapp
settings.json123456789101112131415161718192021222324{ "window.zoomLevel": 1, "markdown.preview.fontSize": 16, "[html]": { "editor.defaultFormatter": "HookyQR.beautify" }, "[javascript]": { "editor.defaultFormatter": "HookyQR.beautify" }, "[json]": { "editor.defaultFormatt ...
特性
类型批注 和编译时类型检查
类型推断
类型擦除
接口
枚举 enum
mixin
泛型编程
名字空间
元组 tuple
类型
boolean 布尔值
number 数值
string 字符串
any
array 数组
tuple 元组
enum 枚举
undefined null
void 空类型 方法没有返回值
never 任何类型的子类型 代表不会出现的值
object 对象
基本类型 增加void any enum never
引用类型
高级类型
交叉类型
联合类型
类型别名
类型索引
类型约束
类型映射
条件类型
交叉类型
& 将多个类型合并为一个类型 并 T & U 表示 T 和 U 的交集
123456789101112131415function extend<T, U>(first: T, second: U): T & U { let result:<T & U> = {}; for (let key in first) { ...
商品计价的千分位分隔符转换1return total.toString().replace(/\B(?=(\d{3})+$)/g, ',')
去除字符串的空格
字符串原生trim方法,只能去除两侧空格,返回新字符串
replace正则匹配
去除所有空格:str = str.replace(/\s*/g,"")
去除两侧空格:str = str.replace(/^\s*|\s*$]/g,"")
去除左侧空格:str = str.replace(/^\s*/,"")
去除右侧空格:str = str.replace(/\s*$/,"")
中文、英文、数字但不包括下划线等符号
中文:^[\u4e00-\u9fa5]{0,}$
中文、英文、数字:^[\u4e00-\u9fa5A-Za-z0-9_]+$(包括下划线),[\u4e00-\u9fa5A-Za-z0-9]+$/[\u4e00-\u9fa5A-Za-z0-9]{ ...
项目需求:1、用nodejs的socket.io写了一个简易版的聊天室(实时推送技术,无刷新实现信息实时更新,应用于在线聊天室、在线客服系统、评论系统和WebIM等)
2、根据socket.io库给出的api以及《nodejs实战》给出的demo实现了, 也只是很基础的, 但放到服务器上后会有网络延迟, 顺序不正确等问题
3、看过网上的资料, 没看到有解释很全或者投入生产环境的代码, 都是一些demo
想请教前辈, 对于一个业务开发中常用的聊天室模块:
1、应该如何去思考呢?2、整个过程会涉及到哪些知识点?3、会有哪些难点呢?(比如支持高并发啥的)4、应该注意什么呢?(比如如何测试或者啥的?)
解决方案需求分析:
实现在线聊天室的基本功能,包括显示在线用户的个人信息
用户进行实时聊天,信息推送实时更新
其他可扩展功能
技术栈分析socket.io是一个开源WebSocket库,它通过Node.js实现WebSocket服务端,同时提供客户端JS库。socket.io支持以事件为基础的实时双向通讯,可以工作在任何平台、浏览器或移动设备。
Node.js+ ...
简介Pixi-2D sprite渲染引擎。
简介
Axios是一个基于Promise网络请求库,作用于node.js和浏览器中。在服务端使用原生node.js http模块,在浏览器段使用XMLHttpRequest。
拦截请求和响应
转换请求和响应数据
取消请求
超时处理
查询参数序列化支持嵌套项处理
自动将请求体序列化为:
JSON(application/json)
Multipart/FormData(multipart/form-data)
URL encoded form(application/x-www-form-urlencoded)
将HTMLForm转换为JSON进行请求
自动转换JSON数据
获取浏览器和node.js的请求进度,并提供额外的信息(速度、剩余时间)
为node.js设置带宽限制
兼容符合规范的FormData和Blob(包括node.js)
客户端支持防御XSRF
API
axios.request(config)
axiox.get(url[, config])
axiox.delete(url[, config])
axiox.head(url[, config])
axio ...
判断一个变量是否为数组?
可靠地检测数组方法
1.利用Object的toString方法
12var list = [1, 2, 3];Object.prototype.toString.call(list);//[object Array]
2.利用ES5的Array.isArray()方法
12var list = [1, 2, 3];Array.isArray(list);//true
数组的原生方法有哪些?
会改变自身的方法:
copyWithin、fill、pop、push、reverse、shift、sort、splice、unshift
不会改变自身的方法:
concat、includes、join、slice、toSource、toString、indexOf、lastIndexOf
遍历方法:
forEach、entries、every、some、filter、find、findIndex
keys、map、reduce、reduceRight、values
如何将类数组的变量转化为数组?
如果是ES6,可以用Array.from()方法 ...
自动分配宽高123justify-content: space-between;display: grid;grid-template-columns: repeat(auto-fill, 96px);
CSS-编程技巧
使用百分比而不是固定的宽度。或者使用相对的宽度:vw, vh, vmin, vmax
在大屏幕上要有一个固定宽度的元素时,使用 max-width,让其不用media query就能自适应小屏幕
在 img, object, video, iframe 加上 max-width: 100%
当需要填充元素的背景图片时,使用 background-size: cover 让图片能保持原始比例。在移动设备上使用高解析图片不是明智的做法
制作 grid 页面时让 viewport width 来决定每一列的数量。Flexbox 或者 display: inline-block 就可以做到
当制作多栏的的文字区块时,设定 column-width 而不是 column-count,让你在小屏幕上会得到一个栏位
减少重复代码原则:
半透明的边界
See the Pe ...
前言浮动float的渲染位置在行框与包含块之间,这样可以使得行框内文字与浮动元素不重叠,并且环绕它显示。在布局过程中经常使用它实现左右并排布局的效果。但是,由于浮动特性,容器如果没有明确设定高度,会依照普通流内元素高度设置,这样就会导致脱离普通流的浮动元素溢出容器,影响后面的元素布局。
已知的清除浮动元素方法:
采用一个HTML标签,以及css的clear属性,手动清除浮动;
采用伪类:after动态建立一个块元素,设定clear属性,清除之前的浮动元素;
采用css overflow非visible值(overflow:auto/overflow:hidden)设定使父容器包含浮动元素;
采用display:table/display:table-cell等table系列属性将父元素变成table形式自动包含浮动元素;
使用table以及td标签作为浮动元素容器;
采用float:left/float:right方式将父元素同样浮动,就可以包含浮动内容;
在IE 6/7的标准文档模式中设置width/height/zoom等样式来自动清除浮动;
使用clear样式清除1.cl ...
此系列为网页设计中经常使用到的垂直居中解决方法,通过本文进行详细地总结。
使用line-height做垂直居中
See the Pen
使用line-height做垂直居中 by whjin (@whjin)
on CodePen.
使用line-height + inline-block做多行文字的垂直居中
See the Pen
使用CSS line-height + inline-block 做多行文字的垂直置中 by whjin (@whjin)
on CodePen.
使用:before + inline-block做垂直居中
See the Pen
使用line-height+inline-block做多行文字的垂直居中 by whjin (@whjin)
on CodePen.
使用padding做垂直居中
See the Pen
使用padding做垂直居中 by whjin (@whjin)
on CodePen.
使用absolute + margin负值做垂直居中
See ...

