目标
1. js内置对象
能够说出什么是内置对象
能够根据文档查询指定API的使用方法
能够使用 Math 对象的常用方法
能够使用 Date 对象的常用方法
能够使用 Array 对象的常用方法
能够使用 String 对象的常用方法
2. 简单类型与复杂类型数据
简单类型与复杂类型
堆和栈
简单类型的内存分配
复杂类型的内存分配
简单类型传参
复杂类型传参
1. 内置对象
查阅MDN文档
Math对象:
不是一个构造函数,不需要new来调用,而是直接使用里面的属性和方法。
1)属性:
Math.PI
2)方法:
Math.max() 最大
Math.min() 最小
3)取整的方法:
Math.abs() -> 绝对值
Math.floor() -> 向下取整 Math.floor(1.1) // 1 Math.floor(1.9) // 1
Math.ceil() -> 向上取整...
Math.round() -> 四舍五入 Math.round(-1.5) // -1 特殊 -.5 往大了取
4)随机数方法:
Math.random() 返回一个随机的小数 范围:[0, 1)
没有参数
得到两个数之间的随机整数 并且 包含这2个整数
function getRandom(min, max){
return Math.floor(Math.random() * (max - min + 1)) + min
}
日期对象:
1)创建方式
Date() 是一个构造函数 必须使用new来调用创建日期对象
var date = new Date() 如果没有参数 返回当前系统的当前时间
2)参数常用的写法
数字型 2019, 04, 22 或者 多用字符串 '2019-04-22 8:8:8'
3)获得Date总的毫秒数(时间戳):
距离1970年1月1号过了多少毫秒数
valueOf() 、getTime()
简写(常用): +new Date()
H5新增:Date.now()
4)倒计时案例
数组:
1)创建数组的方式
字面量: var arr = [ ]
构造函数:var arr = new Array()
Array(2):代表数组的长度为2
Array(1, 2):代表创建一个[1, 2]的数组
2)检测是否为数组(2种):
1)instanceof 运算符 可以用来检测是否为数组
eg:arr instanceof Array
2)Array.isArray() H5新增,IE9以上支持
3)添加删除数组元素的方法(原数组发生变化):
1)push():数组末尾添加一个或多个数组元素
返回值:新数组的长度
2)unshift():数组开头添加一个或多个数组元素
返回值:新数组的长度
3)pop():删除数组的最后一个元素
返回值:删除的元素
4)shift():删除数组的第一个元素
返回值:删除的元素
4)翻转数组与数组排序:
1)reverse():反转数组
2)sort():数组排序(冒泡排序)
sort(function(a, b){
return a - b //升序的顺序排列
return b - a //降序的顺序排列
})
5)数组元素的索引:
indexOf(数组元素, [起始的位置]):返回该数组元素的索引号
只返回第一个满足条件的索引号
如果在该数组里找不到元素则返回-1
lastIndexOf():从数组的后面往前查找
6)数组去重案例:
遍历旧数组,然后拿着旧数组元素去查询新数组,如果该元素在新数组里面没有出现过,我们就添加,否则不添加
怎么知道该元素有没有存在,利用新数组.indexOf(数组元素) 如果返回-1 就说明新数组里面没有该元素
7)数组转化为字符串:
1)toString():将数组转换为字符串
2)join(分隔符):数组用什么符号来分割转换为数组
课下查询:concat() slice() splice()
字符串:
1)基本包装类型:
1)把简单数据类型包装成了复杂数据类型
var temp = new String('哈哈哈')
2)把临时变量的值给str
str = temp
3)销毁这个临时变量
temp = null
2)字符串不可变
看上去是变了,但只是地址变了,字符串还存在
所以不要大量的拼接字符串,占内存空间
3)根据字符返回位置
同数组元素查找方式一样
indexOf(‘要查找的字符’, [起始位置])
lastIndexOf()
4)查找字符串相同字符的索引和出现的次数
5)根据位置返回字符
charAt(index) 根据位置返回字符
charCodeAt(index)返回相应索引号的字符ASCALL值目的:判断用户按下了哪个键
str[index] 根据位置返回字符 H5,ie8支持 常用
6)出现次数最多的字符
7)字符串的方法:
1. concat():链接两个或多个字符串 拼接字符串
2. substr(start, length):截取字符串
3. replace('被替换的字符', '替换为的字符串'):替换字符
4. split('分隔符'):字符串转为数组
简单和复杂 数据类型
简单:基本、值类型
复杂:引用类型
简单数据类型 null 返回的是一个空的对象 object
如果有个变量我们以后打算存储为对象,暂时没想好放啥,这个时候给null
简单数据类型放在 -> 栈里 -> 内存开辟一块空间存放的是值
复杂数据类型放在 -> 堆里 -> (栈里存放地址 -> 地址指向堆里的数据)
简单数据类型传参和赋值
1. 如果变量存储的数据是简单类型,当变量进行传值时,把变量中的值复制一份给另一个变量。
复杂数据类型传参和赋值
1. 如果变量中保存的是复杂数据类型,变量中保存的是数据的地址
2. 当变量在传值时,是把地址传给了另一个变量
3. 连个变量保存的地址是一样的,指向的是同一个对象
4. 当操作了其中一个,另一个也被影响
|
|