ajax请求属性readyState状态判断的不同写法!?

readyState有五种可能的值:
0 (未初始化): (XMLHttpRequest)对象已经创建,但还没有调用open()方法。
1 (载入):已经调用open() 方法,但尚未发送请求。
2 (载入完成): 请求已经发送完成。
3 (交互):可以接收到部分响应数据。
4 (完成):已经接收到了全部数据,并且连接已经关闭。

写法1:

//回调函数内部代码片段
if (xmlHttp.readyState==4)
{
var span = document.createElement(“span”);
span.innerHTML = states[xmlHttp.readyState];
document.body.appendChild(span); 

if (xmlHttp.status == 200)
{
var xmldoc = xmlHttp.responseXML;
//其他代码
} 

写法2:

if(script.readyState === 'loaded' || script.readyState === 'complete') {
                console.log('IE');
                callback();
            }

为什么readyState可以等于一个字符串去判断状态,哪里有这样的解释可以这样写的?

阅读 2.5k
2 个回答

因为前者是 XHR,后者是 DOM 对象。documentreadyState也是字符串。

推荐问题
宣传栏