10 JavaScript object对象


1 创建对象的方式

方式一:

var student = new Object(); 
student.name = "easy";
student.age = "20";

方式二:

var student={
    name : 'lxx',
    age : 18,
    sex : 'male',
    fav : function (a) {
        alert('爱好姑娘');
        return '美女'+ a + '岁';
    }
}
console.log(person);
console.log(person.name);
console.log(person.fav(18));

2 原始值和引用值

根据数据类型不同,有的变量储存在栈中,有的储存在堆中。具体区别如下:

原始变量及他们的值储存在栈中,当把-个原始变量传递给另一个原始变量时,是把一个栈房间的东西复制到另一个栈房间,且这两个原始变量互不影响。

引用值是把引用变量的名称储存在栈中,但是把其实际对象储存在堆中,且存在- -一个指针由变量名指向储存在堆中的实际对象,当把引用对象传递给另一个变量时,复制的其实是指向实际对象的指针,此时两者指向的是同一个数据,若通过方法改变其中-个变量的值,则访问另一个变量时,其值也会随之加以改变;但若不是通过方法而是通过重新赋值此时相当于重新开了-个房间该值的原指针改变,则另外-个值不会随他的改变而改变。

//初始值类型
var a = 'lxx';
var b = a;
var a = 'wxx';
console.log(a); //wxx
console.log(b); //lxx
//属性和值都在栈区

//对象类型
var arr1 = [1,2];
var arr2 = arr1;
arr1.push(3);
console.log(arr1); //[1,2,3]
console.log(arr2); //[1,2,3]

var arr1 = [4,5];
console.log(arr1); //[4,5]
console.log(arr2); //[1,2,3]
//属性在栈区,存储的值是内存地址;值在堆区,存储的事数据

3 访问方式

var obj = new Object()
obj.name = 'lxx';
obj.age = 12;
obj.gender = 'male';
//方式一
console.log(obj.name);
console.log(obj.age);
//方式二
console.log(obj["name"]);
//循环遍历
for (var i in obj){
    console.log(i,obj[i]);
}
/*
name lxx
age 12
gender male
*/

4 json序列化

json是-种数据格式,语法一般是{}或者[]包含起来
内部成员以英文逗号隔开,最后一个成员不能使用逗号!
可以是键值对,也可以是列表成员
json中的成员如果是键值对,则键名必须是字符串.而json中的字符串必须使用双引号圈起来
json数据也可以保存到文件中,一般以“ . json”结尾。
前端项目中,一般使用json作为配置文件.

在JSON中,有两种结构:对象和数组

  • 对象
var packJSON= {"name":"alex", "password":"123"};

一个对象以“{”开始,“}”结束,“key/value”之间运用 “,”分隔。

  • 数组
var packJSON = [{"name":"alex", "password":"123"}, {"name":"wusir", "password":"456"}];

数组是值的有序集合。一个数组以“[”开始,“]”结束。值之间运用 “,”分隔。

json对象和json字符串转换

var s = '{"name": "lxx", "age": 12}'
//把一个json字符串解析成JS能识别的数据类型:反序列化
var data = JSON.parse(s);
console.log(data,typeof data);
console.log(data.name);
console.log(data['age']);

var res = {
  state:true,
  data:[123,321,231]
};
//把JS的数据类型转化成json字符串:序列化
var res_json_str = JSON.stringify(res);
console.log(res_json_str); //'{"state":true,"data":[123,321,231]}'

遍历json对象和json数组

  • 遍历JSON对象代码如下:
var packAlex  = {"name":"alex", "password":"123"} ;

for(var k in packAlex ){//遍历packAlex 对象的每个key/value对,k为key
   alert(k + " " + packAlex[k]);
}
  • 遍历JSON数组代码如下
var packAlex = [{"name":"alex", "password":"123"}, {"name":"wusir", "password":"456"}];

for(var i in packAlex){//遍历packJson 数组时,i为索引
   alert(packAlex[i].name + " " + packAlex[i].password);
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/279053.html

(0)
上一篇 2022年8月5日
下一篇 2022年8月5日

相关推荐

发表回复

登录后才能评论