定义:
对象(object):JavaScript里的一种数据类型
对象是一种无序的数据集合
数据是一种有序的数据集合
用来描述一个事物,比如描述人
静态特征 (姓名, 年龄, 身高, 性别, 爱好) => 可以使用数字, 字符串, 数组, 布尔类型等表示
动态行为 (点名, 唱, 跳, rap) => 使用函数表示
1、对象声明语法
let 对象名 = {
属性名:属性值
方法名:函数
}
let obj = {} 这是一个空对象
构造函数 new 关键字
let obj1 = new Object
对象里面包含属性 和 方法
属性 : 在对象里面定义的属性本质就是变量
方法:在对象里面定义的方法本质就是函数
2、属性
let obj = {
属性名 :属性值
}
注意事项:
属性名和属性值之间使用 : 隔开
多个属性之间使用 ,隔开
3、对象的 增删改查 *** 作
let obj = {
uname:'加钱居士',
age:37,
'user-gender': '男',
hobby:'加钱',
}
3-1 查询属性 查 对象.属性名
属性名 : 存在, 则获取的是属性值
属性名 : 不存在, 则获取的是undefined
console.log(obj.uname)
3-2 修改属性 改 对象.属性名=值
obj.age = 69
console.log(age)
3-3添加属性 增 对象.新属性名=值
obj.weight = 200
改 与 增 的语法是相同的,有这个属性就是改,没有这个属性就是改
3-4 删除 delete 对象名.属性名
delete obj.age
console.log(obj)
3-5查询的另一种写法
当属性名中 有中横线 这种符号时,会把-当做数学符号解析
这种情况下,查询对象方法 对象['属性名']
console.log(obj['user-gender'])
查询总结
方法(1) 对象.属性名
console.log(obj.uname)
方法(2) 对象['属性名']
console.log(obj['user-gender'])
4、对象中的方法
在对象外面称之为 函数 ,在对象里面称之为 方法
方法是由方法名和函数两部分构成,它们之间使用 : 分隔
多个属性之间使用英文 , 分隔
方法是依附在对象中的函数
方法名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等
// 对象
let person = {
// 属性名:属性值
uname:'催逝员',
task:'我滴任务完成了',
// 方法:
// 在对象外面称之为 函数 ,在对象里面称之为 方法
fn:function(x,y)/* 形参 */{
console.log(x + y);
}
}
person.fn(1,2) // 实参
5、遍历对象
能够遍历输出对象里面的元素
遍历数组:for
遍历对象:for in
for(let k in 对象名){
k的作用用于代表对象里面的属性名
对象名[k]是获得属性值
}
// 对象
let person = {
uname:'催逝员',
task:'我滴任务完成了',
sex : '男',
}
// 遍历对象
for(let k in person){
console.log(k) //k打印出来的是 'uname' 'task' 'sex' ,属于是字符串类型
// console.log(person.k) 因为对象里面没有k,所以打印出来的是 undefined
console.log(person[k]) //'uname' === k
}
6、内置对象 Math
Math对象是JavaScript提供的一个“数学”对象,它提供了一系列做数学运算的方法
Math对象包含的方法有:
random:生成0-1之间的随机数(包含0不包括1)
ceil:向上取整
floor:向下取整
max:找最大数
min:找最小数
pow:幂运算
abs:绝对值
生成N-M之间的随机数
Math.floor(Math.random() * (M - N + 1)) + N
以下函数返回 min(包含)~ max(不包含)之间的数字
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min) ) + min;
}
以下函数返回 min(包含)~ max(包含)之间的数字:
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min + 1) ) + min;
}
近期术语解释
关键字 在JavaScript中有特殊意义的词汇 例如:let、var、function、if、else、switch、case、break
保留字 在目前的JavaScript中没意义,但未来可能会具有特殊意义的词汇 例如:int、short、long、char
标识(标识符) 变量名、函数名的另一种叫法 目前没有例子
表达式 能产生值的代码,一般配合运算符出现 例如:10 + 3、age >= 18
语句 一段可执行的代码 例如:If () for()
7、基本数据类型和引用数据类型
简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型
值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型
string ,number,boolean,undefined,nul
引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型
通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等
8、堆栈空间分配区别
栈( *** 作系统):由 *** 作系统自动分配释放存放函数的参数值、局部变量的值等。其 *** 作方式类似于数据结构中的栈;
简单数据类型存放到栈里面
堆( *** 作系统):存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收。
引用数据类型存放到堆里面
(1)简单类型的内存分配
值类型(简单数据类型): string ,number,boolean,undefined,null
值类型变量的数据直接存放在变量(栈空间)中
(2)复杂类型的内存分配
引用类型(复杂数据类型):通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等
引用类型变量(栈空间)里存放的是地址,真正的对象实例存放在堆空间中
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)