# 一、 复习
1、ES5严格模式
- 开启方式"use strict"
- 开启之后的变化
2、新增数组的方法0
- 数组.index()
- 数组.forEach()
- 数组.map()
- 数组.filter()
- 数组.some()
- 数组.every()
- 数组.reduce()
# 二、字符串的应用
1、字符串是元数据的一种,是数据最原始的形式
- 主要应用于配合其他功能语句使用
- 配合像页面输入内容的打印语句,可以实现动态html结构
- 元素innerHTML = ''
- docunment.writ
- 当功能无法接收其他类型时(数值、布尔、对象、变量),会使用字符的形式传递
- 作为程序中某些功能的状态使用
2、字符串拼接
- 使用(+)加号进行拼接,当加号两边有一个字符那就把另外一个数据也作为字符,进行操作
- 配合向页面打印的语句
# 三、字符编码
1、字符编码:计算机只能识别0和1,我们向计算机输入的任何信息最终都会转成0和1,但是并不是所有信息都能直接转成二进制,所以需要一些过渡进制进行转换,这些过渡进制 成为字符编码
2、分类:
- Unicode编码:统一码,包含了所有的字符编码
- 使用4位的十六进制表示一个字符
- 十六进制转成十进制
- 十进制转成二进制
- ASCII码:字符集,美国信息交换标准码
- GBK:汉字内码扩展规范,专指中文
- UTF-8编码:用于区分网页平台,基于Unicode编码的可变长度的字符编码,也是万国码,用于区分网页平台
3、字符编码的转换 - 字符和Unicod编码(十进制)的转换
- str.charCodeAt(索引);
- 得到十进制的Unciod编码
- String.fromCharCode(十进制或者十进制的Unicod编码)
- 十六进制的表示方法‘0x’开头
- 不支持'\u'开头的Unicod编码
4、常见的字符编码
`- a~z:97~122`
`- A~Z:65~90`
`- 0~9:48~57`
# 四、对象
1、对象:描述了某个具体的事物的所有信息的打包或集合
- 对象:数据的无序集合
- 数组:数据的有序集合
2、对象的优势
- 提升了信息的查找速度
- 提升了信息的传输速度
3、对象的组成
- 键值对,键和值成对出现,键和值使用冒号链接,键值之间使用逗号隔开
4、对象的意义
- 存储数据
- 编程
5、对象的操作
- 点语法
- 中括号语法:
6、对象的操作
- 增改查
- 删:delete对象,key
7、对象的分类
- 宿主对象:寄生于某个平台的对象
- `window,document`
- 本地对象:本质是构造函数,需要通过new执行才能得到真正的对象
- `String,Number,Boolean,Object,Array,Date,RegExp`
- 可以作为函数直接使用:`String(), Numebr(), Boolean()`
- 可以作为对象直接使用:`String.fromCharCode()`
- 可以作为构造函数被new执行:`new Array(),new String()`
- 内置对象:官方提供,不需要经过任何处理和执行,可以直接使用
- `Math`
- `Math.round()`
8、在浏览器js中,顶层对象就是window
- 在js中所有的全局变量中和函数都属于window
- window在使用过程中,可以被省略
- 利用window可以在局部作用域合法的声明的全局变量
- 没有明确隶属对象的函数内的this指向window(非严格模式)
9、this是一个特殊的对象,是一个指向,默认指向window;
- 一般在函数中,在执行的一瞬间会被重新绑定一个具体的指向,this表述当前函数的执行对象
- this的指向必然是对象,如果强行修改成非对象,this也会自动转成对象
# 五、内置对象 - Math
1、Math对象是一个数学对象,提供了各种数学操作
2、方法
- 四舍五入取最近的整数 Math.round()
- 0~1的随机整数 Math.random()
- 绝对值 Math.abs()
- 向下取整 Math.floor()
- 向上取整 Math.ceil()
- 取最小值 Math.min()
- 取最大值 Math.max()
- x的y次方 Math.pow()
- 开平方 Math.sqrt()
- 正弦 Math.sin()
- 余弦 Math.cos()
- 正切 Math.tan()
```
console.log(Math.sin(90/(180/Math.PI)));
console.log(Math.cos(90/(180/Math.PI)));
console.log(Math.tan(90/(180/Math.PI)));
console.log(Math.PI);
console.log(Math);
```
3、Mat的属性
- 圆周率:Math.PI
- 约等于:3.14159265358
4、范围随机数
# 六、本地对象 - Date
1、Date:日期,用来获取计算机的日期和时间。
2、获取:获取当前时间
- 获取当前的时间戳:Date.now()
- 时间戳:从1970年1.1 0:0,到此刻的毫秒数
- 获取完整的日期对象:new Date()
- 获取到的是一个对象类型的日期,包含日期中所有的部分,但是需要解析
- 获取日期对象中的每个部分
3、设置:设置指定日期时间
- 创建时,设置指定日期。一般只用来设置日期,而不设置时间,时间会清0
- `new Date(参数)`
- 字符参数:
- 一个参数
- 月份的范围:1~12
- 没有设置的部分,清0
- 超出上限,`Invalid Date`
- 数值参数:
- 多个参数
- 月份的范围:0~11
- 没有设置的部分,清0
- 超出上限,向前一位进1
- 创建后,设置指定日期,一般用来专门设置某个部分,其他没有设置的部分,以当前日期时间为准
- `var d = new Date()`
- `d.setxxx()`
- 一个方法一个参数
- 月份的范围:0~11
- 没有设置的部分,以当前日期时间为准
- 超出上限,向前一位进1
- 设置时间戳:设置从1970.1.1 0:0:0过去了的毫秒数
- d.setTime(毫秒数);
4、计算两个日期之间的差值
- 日期可以直接进行计算
- 直接利用时间戳进行差值计算
- 注意单位换算
5、get获取
- set赋予
```
var d= new Date();
console.log(d);
console.log(d.getFullYear());
console.log(d.getMonth());
console.log(d.getDate());
console.log(d.getDay()); //星期几
console.log(d.getHours());
console.log(d.getMinutes());
console.log(d.getSeconds());
console.log(d.getMilliseconds()); //返回当前时间的毫秒数
console.log(d.getTime()); //返回距1970年的毫秒数
设置日期
字符参数:
一个参数
没有设置的部分清零
月份的范围:1~12
var d = new Date('2008.8.8');
var d = new Date('2008.8.38');
var d = new Date('2008.8.8 10:8:30');
var d = new Date('2008-8-8');
var d = new Date('2008/8/8');
数值参数
d多个参数
月份的范围:0~11
超出上限,向前进1
var d = new Date(2008,8,8);
var d = new Date(2008,8,38);
var d = new Date(2008,8,8,10,10,10);
创建后,设置指定日期,一般用来专门设置某个部分,日期部分以当前日期为准
没有设置的部分,以当前的时间为准
月份范围0~11
没有设置部分,跟随当前时间
超出上限,向前进1
var d= new Date();
d.setFullYear(2008);
d.setMonth(8);
d.setDate(8);
d.setTime(100000000);
console.log(d);
```