一、学习内容
遍历对象的属性
for... in... 语句来遍历对象的属性
对象中嵌套数组
对象中嵌套数组,数组中继续嵌套对象
数据类型的区别
简单数据类型
也叫做基本数据类型,在存储时变量存储的是值的本身
比如:string、number、boolean、undefined、null
复杂数据类型
也叫做引用数据类型,在存储时变量存储的仅仅是地址,地址会指向存储的数据
比如:使用new关键字来创建的对象(系统自带对象,自定义对象),比如:Object、Array、Date等等
栈和堆的概念
简单数据类型是存放在栈里面的,在栈中直接开辟一段内存空间存放值的本身
复杂数据类型是首先在栈里面开辟空间存放一个十六进制的地址,然后地址指向堆中的数据
简单数据类型的传参
复杂数据类型传参
内置对象
什么是内置对象
JS对象对象分成3种:自定义对象、内置对象、浏览器对象
自定义对象和内置对象是js的基础内容,属于ECMAScript,浏览器对象是js独有的,指的是js的api
内置对象是js自带的对象,开发者可以直接使用,提高开发效率
js提供的内置对象有Math、Date、Array、String等等
自己封装一个数学对象
Math对象
二分法
前提:
使用二分法进行查找的时候,查找的对象数组必须是有序的,大小顺序必须是按照有序的顺序排列的,基本思想就是先确定待查数据的范围,用区间[left,right]表示,逐步缩小范围,直到找到指定的目标元素为止
实现步骤
用变量start来指定查找元素所在数组的开始的下标索引
用变量end来指定查找元素所在数组的结束的下标索引
用变量mid来指定每次开始和结束区间的中间下标索引
初始值 start = 0,end=arr.length - 1; mid=Math.floor((start + end) / 2 )
判断
比较参数num(我们要查的值) 和arr[mid]值的大小
如果num > arr[mid],则表明num只能在区间mid + 1~ end之间 ,将mid+1 给到 start变量即可,end值保持不变
如果num < arr[mid], 则表明num只能在区间start ~ mid-1之间,将mid -1 给到end,start值保持不变
循环上面的步骤,直到 arr[mid] === num 条件成立,返回下标即可。
Date内置对象
Date对象和Math对象有区别,Date是一个构造函数,使用的时候需要使用new来进行实例化。
主要传参方式
数字型传参
字符串型传参
不传参
格式化输出年、月、日、星期
格式化输出 时 分 秒
封装指定格式的时间函数
时间戳
Date对象获取的当前的时间戳是基于1970年1月1日开始的总毫秒数
利用时间戳来实现倒计时案例
思路:
用将来的时间的时间戳减去现在时间的时间戳,将毫秒数的差值转化为秒数,转换为天时分秒即可。
将运算后的结果要进行转化,转化为天时分秒
天的计算公式:parseInt(总秒数 / 60 / 60 / 24)
小时的计算公式:parseInt(总秒数 / 60 / 60 % 24)
分钟的计算公式:parseInt(总秒数 / 60 % 60 )
秒钟的计算公式:parseInt(总秒数 % 60 )
Array对象
检测元素是不是数组
给数组添加或者删除元素
添加元素
给数组前面添加元素
给数组后面添加元素
数组排序
数组翻转
数组索引
通过元素来返回它在数组中的位置
从前往后找
从后往前找
数组去重
数组转化字符串
字符串对象
基本包装类型
一般只有对象才会有属性和方法,为什么像string简单数据类型也会有属性和方法呢?
因为实际上js是将简单的数据类型进行了包装
字符串常用方法
根据字符返回位置
indexOf() 和 lastIndexOf()
根据位置返回字符
字符串其他常用方法
|