形参默认值
//定义一个点的坐标的构造函数
function Point(x,y) {
this.x = x;
this.y = y;
}
let point = new Point(23,35);
console.log(point);
let point1 = new Point1();
console.log(point1);
Promise对象
//创建Promise对象
let pronmise = new Promise((resolve,reject) => {
//初始化Promise状态:pending(初始化)
console.log('111');
//执行异步操作,通常是发送AJAX请求,开启定时器
setTimeout(() => {
console.log('333');
//根据异步任务的返回结果,去修改promise的状态
//异步任务执行成功
// resolve('哈哈');//修改promise的状态为fullfilled(成功状态)
//异步任务执行失败
reject('555');//修改promise的状态为rejected(失败状态)
},2000);
})
console.log('222');
promise.then((data) => {//成功的回调
console.log(data, '成功了!!!');
}, (error) => {//失败的回调
console.log(error, '失败了!!!');
});
//定义获取新闻的功能函数
function getNews(url){
let promise = new Promise((resolve, reject) => {
// 状态:初始化
// 执行异步任务
// 创建xmlHttp实例对象
let xmlHttp = new XMLHttpRequest();
console.log(xmlHttp.readyState);//0 范围0-4
/*
nreadystatechange 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
readyState 存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
•0: 请求未初始化
•1: 服务器连接已建立
•2: 请求已接收
•3: 请求处理中
•4: 请求已完成,且响应已就绪
status 200: "OK"
404: 未找到页面
*/
//绑定readyState监听
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState === 4){
if(xmlHttp.status == 200){//请求成功
// console.log(xmlHttp.responseText);//修改状态
resolve(xmlHttp.responseText);//修改promise的状态为成功的状态
}else{//请求失败
reject('暂时没有新闻内容');
}
}
};
// open设置请求的方式以及url
xmlHttp.open('GET', url);
// 发送
xmlHttp.send();
});
return promise;
}
getNews('http://localhost:3000/news?id=2')
.then((data) => {
console.log(data);
},(error) => {
console.log(error);
})
Symbol