1.JS的组成:ECMAScript、DOM、BOM
2.变量:本质就是程序在内存中申请的一块 用来存放数据的空间。
变量命名规则
3.简单数据类型(值类型)
3.1 Number: 正数、负数、整数、小数
3.2 String
3.3 Boolean( 0、-0、NaN、''、null、undefined、document.all会被Boolean()函数转换成false)
3.4 Undefined:未定义类型,只有一个值,就是小写的 undefined
3.5 Null: 空类型,只有一个值,就是小写的null
4.复杂数据类型(引用类型)
4.1 Object
4.2 Array
4.3 Function
5. 数学运输的特殊情况
5.1 数字 / 0 = Infinity ,因为除数不能为 0 (除数为0 会得到 无穷大)
5.2 0 / 0 = NaN
5.3 数学中除不尽时会得到无限位小数,JS 中只保留小数点后面 15-17位,如:
10 / 3 = 3.3333333333333335
在JS 中,不要直接使用小数数值进行运算,那在JS 中遇到 小数运算 该如何处理呢?
思路:先乘以 一个值,做正常运算,再除以一个值
let a = 0.12312 * 10000; -> 12312
let b = a * 3; // 12312 * 3 /10000
6. typeof 检测数据类型
typeof检测数据类型
7.关于转数值的两个特殊值
+'' -> 0
+null -> 0
parseInt('') -> NaN
parseInt(null) -> NaN
8.数组
8.1 本质:程序在内存中申请的N块连续的空间,可以用来保存一组数据。
8.2 数组提供了4个便捷的新增和删除元素的方法
新增方法:unshift() 和 push(),都可以将一个元素顺序追加到数组的 "头" 和 "尾" 部,并 返回数组长度。
删除方法:shift() 和 pop() ,都可以将数组里 "头" 和 "尾" 部顺序取出一个元素,并 返回取出的元素。
数组的新增与删除
2.3 数组的栈和队列用法
2.3.1 栈
先进后出 LIFO-LastInFirstOut
push() + pop() 组合 -》 从尾部 添加,从 尾部 获取
unshift() + shift() 组合 -》 从头部 添加,从 头部 获取
2.3.2 队列
先进先出(FIFO-FirstInFirstOut))
push() + shift() 组合 -》 从尾部 添加,从 头部 获取
unshift() + pop() 组合 -》 从头部 添加,从 尾部 获取
3.函数
本质:用来装代码的盒子。
4.对象
4.1 本质:是一个 可以装 任意数据和代码的盒子(超级盒子)。
4.2 对象的成员
属性:属性值是非函数
方法:值是函数
对象的方法其实 也是对象的 一个属性,只不过属性值为方法