闭包和ajax
匿名函数
-
匿名函数就是没有名字的函数
-
总结一下学习了几种函数
-
普通函数
function fun(){}
-
构造函数
function Obj(name){ this.name=name } new Obj('123');
-
事件处理函数
document.οnclick=function(){}
-
表达式函数
var fun=function(){}
-
匿名函数
function(){ console.log('123'); }
-
匿名函数是自执行的
-
(匿名函数)(调用)
(function(){console.log(123)})()
-
(匿名函数(调用))
(function(){alert('1')}())
IIFE,立即执行函数
优点:1. 避免全局污染;2. 节约内存
闭包
- 闭包就是能够读取其他函数内部变量的函数
- 特点:函数里面套函数,内部函数访问外部函数,变量不销毁
- 本质:闭包将函数内部和函数外部连接起来的桥梁
ajax
- 异步
- 有两种请求,get请求和post请求
get请求步骤(五个步骤)
var ajax = new XMLHttpRequest();//创建异步对象
ajax.open(get, json.url,false);//设置请求URL的参数
//有三个参数,方法(get),路径,是否异步(默认异步,false)
ajax.send();//发送请求
ajax.onreadystatechange = function () {//请求监听
if (ajax.readyState == 4) {
if (ajax.status == 200) {
//如果上面两个if都满足的话,说明数据都完美的回来了
console.log(ajax.response);//输入相应的内容
}
}
}
post请求步骤
var ajax=new XMLHttpRequest();//创建异步对象
ajax.open('post','./1.txt');//设置请求参数,和上面一样
ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
//上面这一句是提交方式以及文本类型
ajax.send('name=wtt');//发送请求,发送内容(括号里的东西)给url
ajax.onreadystatechange=function () {
//判断服务器是否正确响应
if(ajax.readyState==4){
if(ajax.status==200){
console.log(ajax.response);
}
}
}
操作数组、json文件
-
因为一般你要显示的内容都是字符串的类型
-
eval()//传入一个字符串(数组形式的),但是默认字符串,转为数组
-
JSON.parse()//传入一个字符串(json类型),将字符串转为json类型
-
对象转字符串:JSON.stringify()
onreadystatechange事件监听前台数据交互阶段:
- 0:创建了XMLHttpRequest对象
- 1:设置了请求参数和服务器建立链接
- 2:向服务器发送了请求
- 3:服务器已经接受了请求,并且已经开始处理,但是还没有处理完成
- 4:服务器处理完毕,并先浏览器发送了响应包,即将处理好的结果发送给浏览器
- ajax.readyState == 4,表示请求已经返回
网络状态码:
- 1XX系列:几乎遇不到
- 2XX系列:请求已经成功被服务器接收
- 3XX系列:重定向
- 4XX系列:请求错误,找不到页面
- 5XX系列:服务器问题
- ajax.status == 200,表示请求成功