其他:Object 常用方法
Object.keys()方法:获取对象的属性名或者方法名
var obj={name: "john", age: "21", getName: function () { alert(this.name)}};
console.log(Object.keys(obj)); // ["name", "age", "getName"]
console.log(Object.keys(obj).length); //3
console.log(Object.keys("abcdef")); //["0", "1", "2", "3", "4", "5"]
Object.assign ():将多个原对象的属性和方法都合并到了目标对象上面。===>可以浅拷贝
var source1 = {name : 'ming', age: '19'}; //源对象 1
var source2 = {sex : '女'}; //源对象 2
var source3 = {sex : '男'}; //源对象 3,和 source2 中的对象有同名属性 sex
Object.assign(source1,source2,source3);{name : 'ming', age: '19', sex: '男'}
Promise: 一个构造函数,支持多个回调,出现不同结果时发出相应的回调
① 三种状态:Pending 初始化状态;Resolve()—>Fulfilled 为成功的状态;Reject()—>Rejected 为失败的状态
② 优点:分离了异步数据获取和业务逻辑,有利于代码重复;可以采用链式写法;一旦promise的值确定为fulfilled或者rejected后不可更改
③ 缺点:代码冗余,语义不清
④ 解决了回调地狱;解决异步;
关于使用:
Promise.then(onFulfilled=>{console.log(“成功”)},onRejected=>{}console.Log(“失败”)); --->异步执行.不能同时打印哟~
Promise.resolve(console.log(“成功”))
Promise.reject(console.Log(“失败”))
Promise.catch()--->根据resolve中的结果success还是err来调用
Promise.all()--->处理并行异步时用到,所有异步必须返回resolve才能掉用
Promise.race()--->处理多个异步时,只要有一个异步进入fulfilled或者rejected,就会处理,可以解决多个异步任务容错
Promise封装:
const promisePre = (params, url) => {
return new promise((resolve, reject) => {
//如果是请求--
axios({
method:post
url: url,
data: params
}).then((res) => {
if (res.status == '200') {
resolve(res)
} else {
rejected(res)
}
}).catch(err => rejected(err))
})
}
//使用//
promisePre(params, url).then(res=>{}).catch(err=>{})
或:axios.post(url,data).then(res=>{}).catch(err)=>{})
HTML5新特性:
<audio>, <video>,<canvas>,<svg>, echarts,地理定位;
dom对象.requestFullscreen(); // 让dom对象全屏显示 ESC退出全屏