browser-used v0.3.4
Used.js是一个轻量级小巧的可运行在浏览器中的JavaScript函数库,除个别外大部分的使用方式与Node.js API保持一致。
- 更轻量小巧
- 可按需载入
- 丰富的API
- 提高开发效率
- 全浏览器兼容
编译
$ yarn
$ npm run build安装
- NPM
$ npm i browser-used --save开始
文档说明以NPM的方式来使用进行
import Used from 'browser-used' // 全引用
import Time from 'browser-used/lib/time' // 仅引用Time模块
import querystring from 'browser-used/lib/querystring' // 仅引用querystring模块大部分的模块主要针对lodash.js未提供但又常用到的一些函数,并且支持按需载入,个别模块如Time的使用和 Moment.js 的API,用法相同, (保证和热门库使用体验一致) 无学习成本。
API
若有不当之处,请指出;
Time
初始化一个Time支持多种传入参数的方式:
- 无参数,将得到一个包含当前时间和日期的
time对象 - 标准的ISO 8601时间字符串,如:
time('2018-05-04') - Unix 时间戳,如:
time(1525793309344) - Date对象,如:
time(new Date())
Time Property
y年m月d日w星期几h小时hm分钟hms秒hmss毫秒
Time Method
isValidreturn Boolean
isValid 检查当前的Time对象是否是一个有效的时间对象。
time().isValid()clonereturn Time Object
clone 返回一个包含当前对象的拷贝
time().clone()unixreturn number
unix 返回Unix时间戳(秒)
valueOfreturn number
valueOf 返回Unix时间戳(毫秒)
formatreturn string
format 格式化日期
time().format('YYYY-MM')
time().format('hh:mm:ss')转换格式如下:
| Format | Output | Description |
|---|---|---|
YYYY | 2018 | 四位数的年份 |
MM | 01-12 | 月份,数字前面加上0 |
DD | 01-31 | 月份里的一天,数字前面加上0 |
hh | 00-23 | 小时,数字前面加上0 |
mm | 00-59 | 分钟,数字前面加上0 |
ss | 00-59 | 秒,数字前面加上0 |
a | 'am' 'pm' | 12时制转换日期格式小写 |
A | 'AM' 'PM' | 12时制转换日期格式大写 |
isBeforereturn Boolean
isBefore 检查一个Time对象是否在另一个Time对象的时间之前
time().isBefore(time())isAfterreturn Boolean
isAfter 检查一个Time对象是否在另一个Time对象的时间之后
time().isAfter(time())isSamereturn Boolean
isSame 检查一个Time对象是否与另外一个Time对象时间相同
isLeapYearreturn Boolean
isLeapYear 判断闰年
daysInMonthreturn number
daysInMonth 返回某年某月有多少天
addreturn new Time()
add 提供了操作时间的方式
const M = t.add(2019,'Y').format()
console.log(M);单位格式:
| 单位 | Output |
|---|---|
Y | 年 |
M | 月 |
w | 周 |
d | 天 |
h | 小时 |
m | 分钟 |
url
支持解析和format一个符合URL规则的URL
parse
将一个URL的查询字符串序列化成JSON对象,并且支持获取特定key的value。
const websiteUrl = 'https://github.com/icepy?id=1234&name=你好&name=你好吧'
const _query = url.parse(websiteUrl)
console.log(_query)
const id = url.parse(websiteUrl, 'id')
console.log(id)format
将一组JSON对象反序列化成URL字符串
const _websiteUrl = url.format('https://github.com/icepy',{
id: 1234,
name: '你好'
})
console.log(_websiteUrl)querystring
处理查询字符串解析和反序列化成字符串,所有的value支持编码解码
parse
使用parse将一个符合标准的URL查询字符串,序列化成JSON对象
const search = 'id=1234&name=你好&name=你好';
const _wu = querystring.parse(search)
console.log(_wu)stringify
使用stringify将一组JSON对象,反序列化成URL查询字符串
const query = {
id: 1234,
name: ['你好', '你好']
}
const wu = querystring.stringify(query)
console.log(wu)log
良好的日志系统可以在排错方面给予效率,log提供了良好的区分以及格式化输出。
const logger = log.log;
const LogType = log.LogType;
logger(['123456'])
logger(['error'], LogType.ERROR)
logger(['waring'], LogType.WARNING)
logger(['info'], LogType.INFO)log函数LogType常量定义了LOG ERROR WARNING INFO 四个等级
Cookie
创建一个cookie应用于整个网站:
cookie.set('name', 'icepy')创建一个从现在起7天过期的cookie应用于整个网站:
cookie.set('name', 'icepy', { expires:7 })获取一个key=name的cookie:
cookie.get('name')获取所有的cookie:
cookie.get()删除一个key=name的cookie:
cookie.remove('name')⚠️注意:删除不存在的cookie不会引发任何异常,也不会有返回值,在删除cookie时最正确的处理方式是将设置cookie时完整的路径和域属性都传递进来。
env
用于程序本身判断自己所运行的环境,主要支持Browser,Node.js,Weex,全部的常量返回一个Boolean。
inBrowser是否在浏览器中inWeex是否在Weex中inNodeJS是否在Node.js中isIE是否是IEisIE9是否是IE9isEdge是否是EdgeisAndroid是否是Android(浏览器或Weex)isiOS是否是iOS(浏览器或Weex)isChrome是否是Chrome
parseUrlToLocation
用于解析字符串URL,如:https://github.com/icepy?id=1234/#hash
{
"url":"https://github.com/icepy?id=1234/#hash",
"scheme":"https",
"slash":"//",
"host":"github.com",
"path":"icepy",
"query":"id=1234/",
"hash":"hash"
}