ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

10 JavaScript object对象

2022-08-05 15:35:30  阅读:417  来源: 互联网

标签:10 object console log JavaScript json var obj name


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);
}

标签:10,object,console,log,JavaScript,json,var,obj,name
来源: https://www.cnblogs.com/it-lkp/p/16554463.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有