export 、 export default 和 module.exprots 的使用和区别
Math
ceil
floor
round
random
返回 0~1 之间的随机数包括 0 不包括 1
ES6
Symbol
ES6 引入了一种新的原始数据类型 Symbol ,表示独一无二的值,最大的用法是用来定义对象的唯一属性名。
let sy = Symbol("key1");
// 写法1
let syObject = {};
syObject[sy] = "kk";
console.log(syObject); // {Symbol(key1): "kk"}
// 写法2
let syObject = {
[sy]: "kk"
};
console.log(syObject); // {Symbol(key1): "kk"}
// 写法3
let syObject = {};
Object.defineProperty(syObject, sy, {value: "kk"});
console.log(syObject); // {Symbol(key1): "kk"}
字符串转json
// 1 eval 函数
var a = {name:""}
JSON.parse(str)
前段存储
h5之前,存储主要是用cookies。cookies缺点有在请求头上带着数据,大小是4k之内。主Domain污染。
对于IE浏览器有UserData,大小是64k,只有IE浏览器支持。
HTML5 提供了两种在客户端存储数据的新方法:
- localStorage - 没有时间限制的数据存储
sessionStorage - 针对一个 session 的数据存储
本地存储 localstorage
localStorage 方法存储的数据没有时间限制。
以键值对(Key-Value)的方式存储,永久存储,永不失效,除非手动删除。大小
每个域名5M
- 常用的api
getItem //取记录
setIten//设置记录
removeItem//移除记录
key//取key所对应的值
clear//清除记录
- 存储内容
数组,图片,json,样式,脚本。。。(只要是能序列化成字符串的内容都可以存储)
本地存储sessionstorage
HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localStorage 则会一直保存
离线缓存
- manifest 文件
manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。
manifest 文件可分为三个部分:
- CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存
- NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存
- FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)
class expression 类表达式
字符串方法
indexOf
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。
var str = "abc123"
str.indexOf("1")
// 3
search
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回 -1。
var str = "abc123"
str.search("1")
3
match
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
var str = "abc123"
str.search("1")
3
toUpperCase
字符串转大写
let str = "a"
str.toUpperCase()
"A"
toLowerCase
let str = "A"
str.toLowerCase()
"a"
charCodeAt
对字符的ASCII编码进行获取和修改。
substring
截取字符串
substr
截取字符串
数组方法
forEach
使用forEach遍历
let arr = ["a", "b"]
arr.forEach(item=>console.log(item) )
// a
// b
// undefined
toString
方法能够把每个元素转换为字符串,然后以逗号连接输出显示
let arr =[1,2,3]
arr.toString()
"1,2,3"
concat
用于连接两个或多个数组
该方法只是返回链接的数组的一个副本
sort
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
let arr = [5,6,1]
arr.sort() // [1,5,6]
let strarr = ["fsd","d","c"]
strarr.sort() // ["c", "d", "fsd"]
reverse
倒叙排列
let arr = [5,6,1]
arr.reverse() // [6,5,1]
let strarr = ["fsd","d","c"]
strarr.reverse() // ["fsd", "d", "c"]
对象方法
assgin
方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
let obj1 = {a:1,b:2,c:3 }
let obj2 = Object.assign({c:4,d:5},obj1)
obj2
//{c: 3, d: 5, a: 1, b: 2}
obj1
//{a: 1, b: 2, c: 3}
Object.assign(target, ...sources);
// target: 目标对象 // sources: 源对象 // 返回值 目标对象
Object.assign(obj2,{n:9})
obj2
// {c: 3, d: 5, a: 1, b: 2, n: 9}
keys
let obj ={a:1,b:2 }
Object.keys(obj)
// (2) ["a", "b"]
json
stringify
json对象转换为字符串
let obj = {a:1}
JSON.stringify(obj)
// "{"a":1}"
parse
json字符串转为对象
let str = "{"a":1}"
JSON.parse(str)
// {a: 1}
奇葩运算
~~
简单一点就是将一些变量转化为Number(数字)类型的
~~("a") // 0
~~("123") // 123
~~(123) //123
bolb
bolb转file的方法
let files = new window.File([blob],"img.png", {type:"image/png"})
//blob转file,文件名那里不能少了后缀
Math
ceil
向上取整,有小数就整数部分加1
时间
获取当前时间戳
// 1 获取的时间戳是把毫秒改成000显示,因为这种方式只精确到秒
Date.parse(new Date());
// 2
new Date().getTime();
// 3
new Date().valueOf()
// 23 第二种和第三种是获取了当前毫秒的时间戳。
简单工具
字符串处理
字符串首字母转大写 后面字母小写
function firstToUpperl(str){
return str.trim().toLowerCase().replace(str[0],str[0].toUpperCase());
}