一、对象
1、什么是对象
一个复杂(引用)数据的集合。 复杂数据类型:object , function ,array
语法:var obj = {
name : 'CMF', 键值对之间需要逗号间隔
age : 123456
}
{}对象内部存储的数据(内部数据大部分为基本数据类型,)
2、创建对象
* 1、字面量的形式
var obj = {
name : 'CMF',
age : 168
}
* 2、通过内置构造函数
var obj = new object()
3、对象对key的要求:
*1、推荐使用,符号变量命名规则和规范
*2、可以使用数字开头作为key
*3、可以使用特殊字符(@,#)作为key
4、对象的操作(增删改查)
* 1、点语法
*查(对象.key) 例:object.name
*改(对象.key = '修改后的值') 例:object.name = 'CMF'
*增(对象.key = '添加后的值') 例:object.age = 5655555
*删(delete object.name) 例:delete.name
* 2、中括号(数组)写法
*查(对象['key']) 例:object['name']
*改(对象['key'] = 'CMF') 例:object['name'] = 'cccc'
*增(对象['新key'] = '新值') 例:object['age'] = 88888
*删(delete object['name'])
*3、两种操作方式的区别
*对象命名符合规范时两种操作方式都可以使用。
*出现纯数字、特殊符号时不能用点语法,中括号可以使用,但是必须要加''.
*当出现变量的时候,想要用变量作为key,必须要用中括号语法。
因为点语法会将key解析成字符串类型,中括号法会将key = ‘name’解析成值
var obj = {
name : 'CMF',
age : 456123 ,
'@' : 'hhhhh'
}
console.log(obj)
console.log(obj.name)
console.log(obj['name'])
console.log(obj['@'])
var key = 'name'
console.log(obj.key)
console.log(obj[key])
5、遍历对象 拿到对象的所有键值对
* for...in循环
var object = {
name : 'CMF',
age : 11111
}
for(var key in object){
console.log(key)
}
console.log(key.object)
console.log(key,object[key])
二、数组
1、创建数组
*1、字面量 var arr = [5] 就是一个值为5的数组
*2、内置构造函数 var arr1 = new Array(5) 创建一个有长度的数组
2、length:代表数组成成员变量
*console.log(arr.length) 获取数组长度 length
数组的索引值(下标):当前数据在数组的第几个位置(从0开始的)
获取数组中的成员:console.log(arr[0])
3、遍历数组:拿到数组的每一个成员
//2、计算数组中最大值
var b = 0
var arr1= [1,2,3,4,5,6,7,8,9,10]
// for(var i = 0; i < arr1.length; i++){ //遍历所有数组的下标
// if(b <= i){ //比较大小
// b = arr1[i] //将大的那个数组值赋给b
// }
// }
// console.log(b)
for(var m = 0; m < arr1.length; m++){
if(b < arr1[m]){
b = m
}
}
console.log(b)
4、数据类型之间的区别
*1、基本数据类型(number、string、undefined、true、false)
*2、复杂数据类型(function、Object、array)
4.1、存储的区别
*内存分为:栈内存和堆内存
栈内存:数据有序从底部开始排列,(先入后出)
堆内存:数据无序排列,会随机生成一个空间名(地址)
*
*
1、基本数据类型:存储在栈内存中,变量内部就是实际的值。
2、引用数据类型:存储在在内存中,变量内部存储的是堆内存中的地址。
*
4.2、赋值的区别
*
1、基本数据类型:再赋值过程中是值的传递,将自身复制一份给另一个变量,后续修改另一个值不影响自身的值。
2、引用数据类型:在赋值过程中,是地址的传递,修改另一个变量会相互影响。
*
4.3、比较的区别:
*
1、基本数据类型:在做比较的过程中,是将值作比较。
2、引用数据类型:在做比较的过程中,是将地址作比较,判断是不是执行同一个地址。
*
4.4、传参的区别:
*
1、基本数据类型:是值的传递,将值传递给形参。
2、引用数据类型:是地址的传递,将地址传递给函数形参。