基本数据类型(原始值)
- 基本数据类型是构成语言的根基
- 目前为止我们一共学习了五种基本数据类型(不可变类型):
数值(Number)
字符串(String)
布尔值(Boolean)
空值(Null)
未定义(Undefined)
所有的基本数据类型的值都是相互独立的,当我们去表示一个复杂的数据时,
无法体现出,多个数据描述的是一个整体
对象(object),变量之间是相互独立的,对象就像是一个容器一样,
在对象的内部可以存储多个类型不同的变量
当我们需要表示一些复杂数据,只需要将相关的值
统一存储到一个对象,即可完成
//创建一个对象
//使用new调用的函数,被称为构造函数,构造函数是专门用来创建对象的函数
var obj = new Object();
//对象中存储的变量被称为属性
//向对象中添加属性
//语法:对象.属性名 = 属性值
obj.name = '孙悟空';
obj.age = 18;
obj.gender = '男';
//读取对象中的属性
// 语法:对象.属性
console.log(obj.name);
console.log(obj.address); // 如果读取对象中没有的属性,会返回undefined
//创建对象
//var obj = new Object();
//var obj = Object();
var obj = {};// 使用对象字面量来创建对象
// 使用typeof检查一个对象时,会返回 "object"
// console.log(typeof obj);
// 添加属性
// 对象的属性名没有强制的命名规范,
// 但是我们开发中的最佳实践,属性名也要遵循标识符的规范
// 如果你起的名字太奇怪了,需要使用另外一种添加的属性的方式
// 语法:对象['属性名'] = 属性值;
obj.name = '孙悟空';
obj.age = 18;
obj.gender = '男';
// obj.if = '哈哈';
// obj.var = '嘻嘻';
// obj['123123123hjhjjhjhjhjhj13212'] = '呵呵';
// 修改属性
obj.age = 19;
// 删除属性
// delete用来删除一个对象中的属性
delete obj.age;
// console.log(obj.name);
var a = 'gender';
// console.log(obj[a]);
// 对象的属性值可以使任意的数据类型
obj.test = true; // test属性值是布尔值
obj.test = null; // test属性值是空值
obj.test = undefined; // test属性值是undefined
// 对象中也可以存储对象
obj.test = {}; // test属性值是对象
obj.test.name = 'tom';
console.log(obj.test.name);
// 我之前所学习的Number、String、Boolean、Null、Undefined这些数据类型都属于不可变类型
//数据的值是没有办法修改的,可以修改的只是变量,只能通过为变量来重新赋值,来达到修改的目的
var a = 10;
var b = a;
// a++会使原来的变量自增1,属于“改变量”,修改一个变量时,不会影响其他的变量
// 修改一个变量的值时,不会影响到其他变量
a++;
// console.log('a =',a); // 11 引用同一个基本类型值,一个发生改变,不会影响另一个
// console.log('b =',b); // 10
var o1 = {};
o1.name = 'swk';
var o2 = o1;
o1.name = 'zbj';
console.log(o1);//zbj
console.log(o2);//zbj引用同一个对象改变一个值,另一个也会跟着改变
// 创建了一个新的对象
var o = {};
// 每次使用{}、Object()、new Object() 都会创建出一个新的对象
var p = {};
p = o;
// 使用相等或全等比较两个对象时,比较的是对象的内存地址
// 如果内存地址相同,比较时会返回true,内存地址不同会返回false
console.log(o == p);
console.log(o === p);
创建对象同时直接向对象中添加属性
语法:{属性名:属性值,属性名:属性值,属性名:属性值}
对象字面量,外部是一个大括号,内部有一个一个的属性组成
属性名和属性值之间使用:连接,每一个属性以,结尾,最后一个属性不要写,
var o = {
name:'孙悟空',
age:18,
gender:'男',
"123asdsd":'aaa'
};
// console.log(o.name,o.age,o.gender);
console.log(o['123asdsd']);
// const声明的变量是常量,常量只能进行一次赋值
// 常量只是进制了变量的重新赋值(改变量),如果变量指向的是一个对象
// 这个对象是可以正常修改的,不会被const影响
const a = {name:'孙悟空'};
a.name = '猪八戒';
console.log(a);
欢迎关注我的原创文章:小伙伴们!我是一名热衷于前端开发的作者,致力于分享我的知识和经验,帮助其他学习前端的小伙伴们。在我的文章中,你将会找到大量关于前端开发的精彩内容。
学习前端技术是现代互联网时代中非常重要的一项技能。无论你是想成为一名专业的前端工程师,还是仅仅对前端开发感兴趣,我的文章将能为你提供宝贵的指导和知识。
在我的文章中,你将会学到如何使用HTML、CSS和JavaScript创建精美的网页。我将深入讲解每个语言的基础知识,并提供一些实用技巧和最佳实践。无论你是初学者还是有一定经验的开发者,我的文章都能够满足你的学习需求。
此外,我还会分享一些关于前端开发的最新动态和行业趋势。互联网技术在不断发展,新的框架和工具层出不穷。通过我的文章,你将会了解到最新的前端技术趋势,并了解如何应对这些变化。
我深知学习前端不易,因此我将尽力以简洁明了的方式解释复杂的概念,并提供一些易于理解的实例和案例。我希望我的文章能够帮助你更快地理解前端开发,并提升你的技能。
如果你想了解更多关于前端开发的内容,不妨关注我的原创文章。我会不定期更新,为你带来最新的前端技术和知识。感谢你的关注和支持,我们一起探讨交流技术共同进步,期待与你一同探索前端开发的奇妙世界!