创建XMLHttpRequest对象
语法:let xhr = new XMLHttpRequest();
向服务器发送请求
get方式:调用open方法,参数为(请求方式,请求地址+请求参数,是否异步)
调用send()方法
post方式:调用open方法,参数为(请求方式,请求地址,是否异步)
添加请求头:xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
调用send(请求参数)方法
接收服务器响应
使用onreadystatechange事件:
写法:xhr.onreadystatechange=function(){
if(xhr.readyState==4&&xhr.status==200){
fun(xhr.responseText);
}
NaN不是一个数字且数据类型为Number,而且不等于自身
利用NaN不等于唯一不等于自身的特点:
写法:funcion isNaN(n){
if(n!=n){
return true;
}else{
return false
}}
相同点:在if判断语句中,都会转换为false
不同点:转换为Number类型,null为0,undefined为NaN
null表示一个值定义了,但是赋了空值;undefined表示定义了,没有赋值
闭包可以理解成定义在一个函数内部的函数,当其中一个内部函数在包含他们的外部函数之外被调用时,就会形成闭包。
写法:
let fun = (function(){
var count=0;
return function(){
return ++count;
}})()
闭包的本质:
外层函数嵌套一个内层函数,在子函数中操作局部变量,将子函数作为父函数的返回值,通过一个全局变量绑定父函数的返回值,从而延长了子函数以及局部变量的生命周期,实现了可以在函数外部操作函数内部的局部变量
特点:
用处:
缺点: