Day6
- 什么是对象?保存信息,比如用户姓名、年龄、电话给号JavaScript中采用object,对象
- 对象:是一种数据集合,但是是无序的,数组是有序的。
- 声明使用: {}是字面量
声明:(1)let 对象名={ }
- let 对象名= new Object()
使用:对象是由属性和方法组成,属性是名词,方法为动词 使用点访问 “ . ”
let 对象名={
属性名:属性值, 每一组属性之间采用,间隔
方法名:函数
}
- 对象增删改查:
- 查:直接对象名加 “.”来访问相关的属性 obj.address
- 改:查出某个属性,给它赋值就行, obj.goodsPrice=”1299”
- 删:delete obj.address, 就删除了,用的比较少
- 曾:obj.新属性名=新值 obj.size=”Middle”
- 查的另外一种操作:
- 属性名字带有字符串:document.write(obj['goods-name'])
- 对象中的方法:
1、 song:function () 采用匿名函数
{
console.log("唱歌!");
}
使用 obj.song() 此处就要加上括号()
2、 calculate: function (x, y) {
x = x || 0
y = y || 0 调用: obj.calculate(),不传参数就0,传入参数就使用传入的
return x + y
}
- 遍历对象:对象不像数组一样有索引号,但是也可以使用for来遍历数组
- arr是一个数组 for(let k in arr ){ console.log(arr[i]) } 这个k是数组的索引号,0,1,2,这个是字符串型的。不采用for in遍历数组的原因是,k为字符串类型,容易出问题。
- obj是一个对象 for(let key in obj){ console.log( k ) } 现在 k是对象里面的属性名(带字符串的),但是要得到值。 不能使用obj.k 因为他等价于 obj.”uname”,没有这个属性。但是,有一种查的方式可以有”” obj[k]
- 数组对象:
数组中的每一个元素都是一个对象. 可以用来存放多个个同学的多个信息
- 内置对象:JavaScript已经为我们准备好的内置对象
- 内置数学对象:Math.PI Π
- Math.ceil(1.1) 向上取整 2
- Math.floor(1.9) 向下取整 1
- Math.round(1.4) 四舍五入 -1.1 ->-1, 向大的走
- Math.max(1,2,3,6,9) 输出9
- Math.min(1,2,0,3) 输出0
- Math.abs(-10) 10
- Math.random() 返回0-1之间,并且包括[0,1) 左闭右开
例如: (1)取0-10之间随机数:
Math.random()*(10+1),多加一个才能表示
Math.floor(Math.random()*11) 0-10的整数
- 取5-10之间随机数:
Math.random()*(5+1)+5 先扩范围到0-5,在加上5,范围就扩展到5-10.
- 设置一个随机数函数: 范围[[n,m]公式: Math.random()*(M-N+1)+N
- 对象内给属性或者方法赋值使用冒号 : 对象之外只用等号 =
- 案例:随机点名(删除 arr.splice()+
- 案例:随机颜色 16进制和rgba
- // 函数接受一个布尔值,true就是随机16进制颜色 '#ffff 0-f之间任意一个字符 16进制0-9,a-f'
// false就是一个rgb颜色 rgb(255,255,255) 0-255
- 拓展-基本数据类型和引用数据类型
简单类型:又叫基本数据类型或者值类型,复杂类型又叫做引用类型
值类型:简单数据类型/基本数据类型,在存储变量中存储的值本身,因此叫做值类型
String,number,boolean,undefined,null
引用数据类:复杂数据类型,在存储变量中存储的仅仅是变量的地址(引用),因此叫做引用数据类型.通过new关键字创建的对象(系统对象,自定义对象),如object,array,Date等
- 堆栈空间分配:
- 栈(操作系统):由操作系统自动分配的存放函数的参数值,局部变量值.其操作方式类似于数据结构中的栈, 简单数据类型存放在栈里面
- 堆(操作系统):存储复杂类型对象,一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收.引用数据类型存放到堆里(Heap)面
JavaScript本身没有但是可以借用其他与语言来理解,有新语言TypeScript ts