1. 对象
对象是引用数据类型,是一种无序的数据集合。对象里面由属性和方法组成,多 个属性或方法间用,分隔,属性名可以用‘’或“”包住,一般省略,重复名称有特殊字符如空格和中横线-
let 对象名 = {} //对象声明语法
let person = {}//声明了一个person对象
let 对象名 = {
属性名 : 属性值
方法名 : 函数
}
//person对象
let person = {
username:'andy'
age:18
sex:'男'
sayHi:function(){
console.log('hello!')
}
}
-
对象的访问:
对象的属性访问有2种方式,可以使用 . 或[ ]获得对象中的对应值
console.log('person.username')//第一种 console.log(person['username'])//第二种对象的方法访问需要用.来调用
person.sayHi()
-
操作对象
-
增加属性和方法:可以用.和[ ]添加,对象如果有这个属性就相当于重新赋值,没有就相当于动态添加一个
person.hobby = 'football' person['heigh'] = 170 person.move = function() { document.write('移动一点点') } //无论是属性或方法,同一个对象中出现名称一样,后面的会覆盖前面的
- 删除对象中的属性:delete 对象名.属性名
-
-
遍历对象
对象没有像数组一样的length属性,所以无法确定长度
对象里面是无序的键值对,没有规律,不像数组里面有规律的下标
使用for循环 k...in来遍历对象,k是对象的属性名,对象名[k]才是属性值
let person = { username:'andy' age:18 sex:'男' } for (let k in person) { console.log(k)//打印属性名 console.log(person[k])//打印属性值 }
-
内置数学对象
random,ceil,floor,max,min......
-
生成min-max任意范围的随机数公式
Math.floor(Math.random()*(m-n+1))+n Math.floor(Math.random()*(10+1))//0~10的随机数
-
2. 数据的储存方式
-
基本数据类型:
一共有5种:string, number, boolean, undefined, null,它们也叫值类型。在储存时变量中储存的是值本身,因此叫值类型。
-
引用数据类型:
复杂数据类型,在储存时变量中储存的仅仅是地址(引用),因此叫做引用数据类型,它们分别有:对象,数组,函数
-
堆栈空间分配区别:
-
栈(操作系统):由操作系统自动分配释放函数的参数值、局部变量的值等,基本数据类型放在栈里。
-
堆(操作系统):储存复杂类型如对象,一般由程序员分配释放,若不释放,由垃圾回收机制回收。引用数据类型存放在堆里面,变量或栈里面存放的是地址,而地址指向堆空间的实际内容。
-
注意: 由于2种数据类型的空间分配不同,所以如果是基本数据类型的2个变量互相=是赋值,2个变量都是占用的不同栈空间,互不影响。
// 简单数据类型存储的是 值 let a = 1 let b = a b = 2 console.log(b); console.log(a);但是,引用数据类型2=另外一个引用数据类型1的话,会把1的地址给到2,然而1和2都是指向通一个堆空间的内容,所以无论改哪个里的内容,2个都会影响。除非变量2是创建一个新对象。
let obj1 = { name: '李狗蛋', age: 18 } let obj2 = obj1 obj2 = {} console.log(obj1);
-
\