JS对象
js对象的特点
js是基于原型的面向对象语言,只有面向对象的部分特征;没有接口。
js函数本身也是对象。
js对象的属性和方法,可以在运行期间动态的添加和删除。
js对象创建
var obj = new Object();
//添加属性
obj.name = "张三";
obj.age = 20;
//添加方法
obj.speak = function (){
alert("说话")
}
alert(obj.name+" "+obj.age);
obj.speak()
//删除 obj对象的 age属性
delete obj.age;
alert(obj.name+" "+obj.age)
js对象属性的访问:
alert(obj.name);
alert(obj["name"]);
遍历对象中所有的属性:
for (var fieldName in obj){
console.log(fieldName+" "+obj[fieldName]);
}
json对象:
json对象定义:
//创建没有任何属性的对象
var jsonObj = {}; //等价于 var jsonObj = new Object();
//定义拥有 name和 age属性的对象
var jsObj = {name: "李四", age: 18};
json对象和json字符串转换:
//将js对象,以json字符串方式进行显示
alert(JSON.stringify(jsObj));
var str = "{\"name\":\"王五\",\"age\":24}";
//将json字符串转化为json对象
var jObj = JSON.parse(str);
alert(jObj.name+" "+jObj.age);
js数组
js数组的创建:
//创建长度为0的数组
var arr = new Array();
//在数组尾部添加元素
arr.push("abc");
arr.push(23);
console.log(arr);
//创建长度为0的数组
var ar = [];
//创建有初始值的数组,数组长度为初始值的个数
var array = [4,5,6,"ddd"];
//array.length:得到数组长度
console.log(array+" "+array.length);
//给第9个元素赋值,长度自动扩展到9个元素,没赋值的元素为undefined
array[8] = 9;
console.log(array[6]+" "+array.length);
js数组的长度:
js数组的长度采用length属性表示。length属性是可以修改的。当length属性赋值为0时,表示清空数组。
js数组常见的操作:
添加元素:
array.push("abc");
删除元素:
var array = [1,2,3,4,5];
//从下标为2开始,删除一个元素,返回删除的元素集合
var x = array.splice(2,1);
插入元素:
//从下标为2开始,删除0个元素,添加"abc"元素
array.splice(2,0,"abc");
console.log(array);
替换元素:
//从下标为2开始,删除2个元素,添加"abc"元素
array.splice(2,2,"abc");
console.log(array);
json数组:
定义:
var studentArray = [{name:"张三",age:22},{name:"李四",age:20},{name:"王五",age:19}];
遍历:
for (var i = 0; i < studentArray.length; i++) {
console.log(studentArray[i].name+" "+studentArray[i].age);
}
//forEach遍历,n表示集合中的元素
studentArray.forEach(n =>{
console.log(n.name+" "+n.age);
})
查找元素的下标:
//找到“李四”所在下标
var index = studentArray.findIndex(n => n.name == "李四");
console.log(index);
查找数组元素:
//查找“李四”信息
var obj = studentArray.find(n => n.name == "李四");
console.log(obj);
筛选数组元素:
//筛选姓“李”的学生
var newArray = studentArray.filter(n => n.name.startsWith("李"));
console.log(newArray);
排序:
//排序:按年龄排序。其中a和b表示数组中的两个元素
studentArray.sort((a,b) => a.age - b.age);
console.log(studentArray);
map():返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,map()方法按照原始数组元素顺序依次处理元素。
//将数组元素中的name属性,重新创建一个新数组
var arr = studentArray.map(n => n.name);
console.log(arr);