在删除数组元素的时候,数组的下标重新排列
var arr = [1,2,3,4,5,6,7,8,9];
for(var i=0;i<arr.length;i++){
arr.splice(i,1)
}
console.log(arr);
解决数组数据塌陷的方法
//第一种:
var arr = [1,2,3,4,5,6,7,8,9];
for(var i=arr.length-1;i>=0;i--){
arr.splice(i,1)
}
console.log(arr);
//第二种
var arr = [1,2,3,4,5,6,7,8,9];
for(var i=0;i<arr.length;i++){
arr.splice(0,1)
i--
}
//第三种
var arr = [1,2,3,4,5,6,7,8,9];
while(arr.length){
arr.splice(0,1)
}
console.log(arr);
数据劫持
var obj = {
username:"张三",
age:20
}
// 当文本框的内容发生改变的时候,让对象中的数据也发生改变
var inputs = document.querySelectorAll("input");
inputs[0].oninput = function(){
obj.username = this.value
}
// 当对象中的数据发生改变的时候,让文本框的内容也发生改变
// 数据劫持 - 数据发生改变的时候就被监听到了 - 做另外的事情
// console.dir(Object); // defineProperty() - 用来劫持某个对象的某个属性
Object.defineProperty(obj,'username',{
get(){ // get方法是只要obj的username属性被访问,就会执行的函数
// console.log(111);
return inputs[0].value
},
set(val){ // set方法是只要obj的username属性的值发生了改变就被劫持到了
// 参数是即将改的值
// console.log(222);
// console.log(val);
inputs[0].value = val
}
})