类数组间接调用数组的方法
- 类数组和数组逻辑一样,仅仅是操作的主体不一样,一个是arguments,一个是数组,想要实现类数组间接调用数组的方法,只需要改变执行主体,把this改成arguments
代码异常
var oUl = document.getElementById("list");
var oLis = oUl.getElementsByTagName("li");
// console.log(oLis);
try{
var ary = [].slice.call(oLis);
}catch (e){//一旦JS代码错误会被catch给捕获,而不会再在浏览器抛出异常
console.log(e.message)//将错误信息打印出来
//在catch语句中可以对错误信息进行另外一种方式处理
var ary = [];
for(var i = 0;i < oLis.length; i++){
ary[ary.length] = oLis[i];
}
}finally {//不管代码正确与否都会走到finally
}
console.log(ary);
- 调试代码时,需要手动让浏览器抛出异常,阻止代码运行
- 语法:
-
throw new Error('变量不存在')
- throw new ReferenceError("引用类型错误");
- throw new RangeError("范围错误");
- throw new TypeError("类型错误")
json格式数据
- 不是一个数据类型,而是一种数据格式1
- 作用:方便前后端数据交互,方便不同语言间的数据传递,相当于一种运输工具
- json格式的数据是在原有的数据类型基础,制定了一些规范:
- 对于基本类型的数据:字符串必须要用双引号
“”
- 对于引用类型的数据:可以是
数组或对象,但是不可以是函数/正则/日期
- 对象和数组的最后一项不能有
逗号
对象或数组中字符串都得用双引号包起来,对象中的属性名用双引号包起来
//json格式的字符串
var str = '{"name":"lily", "age":18, "sex":"woman"}
- window下提供了一个对象,这个对象下有两个方法,对json格式的字符串和json格式的对象进行转换
JSON.parse()将JSON字符串转换成JSON格式的对象
JSON.stringify()将对象转换成JSON格式的字符串
console.log(JSON.parse(arr));
console.log(JSON.stringify(obj));//{"name":"lily","age":18,"sex":"woman"}
ajax
- 作用:在不刷新页面的基础上,实现数据的更新
- ajax的四步骤:
- 1.创建一个ajax对象
var xhr = new XMLHttpRequest()
- 2.打开一个链接地址(请求一个接口地址)
-
xhr.open("get","./data.json",false)
- 第一个参数表示请求方式,第二个参数表示请求的接口地址,第三个参数表示请求是同步的还是异步的true:异步,false:同步
- 3.监听请求状态
xhr.onreadystatechange = function(){}
- 监听请求状态码(xhr.readyState)和网络状态码(xhr.status)
- 4.发送请求
xhr.send(null)
//1.创建一个ajax对象
var xhr = new XMLHttpRequest();
//2.打开一个链接地址(请求一个接口地址)
xhr.open("get","./data.json",false);
//3.监听请求状态
xhr.onreadystatechange = function(){
if(xhr.readyState === 4 && /^2\d{2}$/.test(xhr.status)) {
console.log(xhr.responseText);
}
};
//4.发送请求
xhr.send(null)
- 回流:页面布局发生改变时,页面所有的内容都会重新渲染
- 重绘:某个元素的外观发生变化,只会对这个元素重新渲染