内容回顾 第一周内容
JavaScript入门的基础语法
- 运算符
- 算术运算符 (+ - * / % ++ -- ** )
- 逻辑运算符 ( && (如果为true 取最后一个true对应的值 如果为false 取第一个false) ||((如果为
- true 取第一个true对应的值 如果为false 取最后一个false) ! 取反)
- 赋值运算符(+= -= /= *= %= = ...)
- 比较运算符 (> < >= <= == (不区分类型 只核对值 null==undefined ) === (比对值的同时比对类
- 型))
- 位运算符 (^ & | ...转为二进制进行11比对 判断奇偶 2&2 )
- 位移运算符 (<< >>)
表达式
- 布尔类型表达式 (使用比较运算产生的表达式 返回值为boolean类型)
- 赋值表达式 (使用赋值运算符产生的表达式 返回值为赋的值 )
- 三元运算符
- 数据类型(加粗的es6新增)
- 字符串 Strng
- 数值 number
- 布尔类型 boolean
- null 空对象引用(typeof返回的是object 释放内存)
- undefined 未定义
- symbol (独一无二的值)
- bigInt (大的整形)
类型的转换 (显式类型的转换 隐式类型的转换)
显示类型的转换(使用构造方法) String 、 Number 、Boolean
辅助方法
parseInt(其他进制转10进制 进制转换) 、parseFloat (转数值的) toString 转字符串(十进制 转其他进制进制转换)
隐式转换
- 在所有传入字符串的方法中 可以放任意类型 因为默认会发生隐式转换调用toString方法转为字符 串
- 在所有的判断中里面传入的内容会默认转为boolean类型
- symbol 不能进行值运算的(不能转为数值) (字符串连接运算允许)
类型转换的相关内容
- 布尔类型表达式?true的结果:false的结果
- 不能转换数值会出现NaN (typeof为number)
- 转boolean类型 (false的值有 ''、0、NaN、undefined、null)
- 数组的转换 ( []和其他值类型比对的时候自动转换空字符串 [0] 里面只有一个元素它会提取里面的
- 元素 等于数值0)
typeof 检索值类型
string、number 、boolean null的typeof为object、function的typeof为function、Array的typeof为object
条件控制语句
- if else
- switch case
- switch case时间复杂度低于if else 、空间复杂度高于if else。(区间判断使用if else)
循环
- for
- while
- do while (最少执行一次)
if(布尔类型表达式){
满足条件执行
}else{
不满足条件执行
}
switch(值){
//进行的是恒等判断
case 值:
操作
break;
case 值:
操作
break;
//按照效率来说写default比没写要快
default:
默认的内容
}
for(var i=0;i<10;i++) //11次
console.log(i) //10
for(;;) //死循环
while(条件){
执行的代码
进行迭代
}
避免死循环、避免在循环内声明变量
Function函数
- 函数的声明
- function关键词声明
- 通过new Function来声明
函数的预编译 (使用function关键词)
函数的预编译俩个过程
- 内存开辟 (在堆里面开辟函数的对象空间)
- 预赋值 (将这个对象空间的地址给到栈里面的变量)
var关键词的预编译
- 内存开辟 (在栈中开辟一个空间来存储对应的变量)
console.log(a)//函数
var a = 10
function a(){
}
console.log(a)//10
var a = 20
递归算法
- 入口 (初始条件)
- 出口 (终止条件)
- 自己调用自己
函数的arguments
用于接收传入的参数的一个伪数组 (具备下标访问及长度(可以被迭代 可以通过for of进行遍历))
函数主要掌握的内容在于函数的封装(封装思想 (考虑要广、局限性(报错)))
数组
数组是一个有序的数据结构(数据结构就是数据的存储的结构。逻辑结构 存储结构)
数组的声明
字面量 []
var arr = []
使用new关键词
var arr = new Array()
数组的属性
length属性(表示长度) 方法
- push 追加到后面 (返回新数组的长度)
- pop 删除最后一个 (返回删除的元素)
- unshift 添加到前面 (返回新数组的长度)
- shift删除第一个 (返回删除的元素)
- splice (删除 返回的是删除的元素组成的数组)
- reverse (反转方法 返回反转的数组)
- sort (排序 返回排序好数组 默认是按assci码进行排序 里面可以传入排序的函数 通过对应的参数
- a b来指定排序方式 a -b 正序 b-a倒序)
- slice(截取方法 返回截取的新数组)
- join (转为字符串)
- concat (连接 返回连接完的新数组)
- indexOf (根据值找第一个下标 指定开始位置)
- lastIndexOf (根据值找第一个下标 从后往前 指定开始位置)
高阶函数 (过滤empty值 以函数作为参数的函数称为高阶函数)
- foreach (遍历的时候 要更改数组本身 没有返回值的)
- map (遍历的时候 不需要更改原本的数组 返回值为一个数组(长度和原本数组一致))
- reduce (计算的 传入对应的函数 可以传入俩个参数(一个参数为函数 一个参数为初始值)初始
- 值没有传入从下标1开始 传入初始值从下标0开始 )
- reduceRight (和reduce一致 从右到左进行计算)
- filter (过滤的 返回满足条件的元素组成的数组)
- some (有一个满足条件据返回true)
- every (全部满足条件才返回true)
数组的访问使用下标进行访问
- 下标从0开始 到length-1结束
字符串
字符串也是一个数据结构(串的结构),它是基础值类型(不可变)
字符串的声明
字面量
var str = 'a'
var str1 = 'a'
console.log(str === str1)//true
使用new关键词
var str = new String('a')
var str1 = new String('a')
console.log(str === str1)//false
console.log(str === 'a')//false
console.log(str == 'a')//true
字符串的内容访问
- 使用下标来访问对应的字符(串的底层实现是数组)
- length属性 字符串的长度 字符串的方法
- indexOf 根据字符串查找第一次出现下标 指定开始的位置
- lastIndexOf 根据字符串查找第一次出现下标 从右往左 指定开始的位置
- search 根据字符串查找第一次出现下标(支持正则表达式)
- concat 进行字符串的拼接返回新的字符串
- slice 截取方法
- substring 截取方法
- substr 截取方法
- split 分割 转为数组(支持正则表达式)
- match 匹配(支持正则表达式)
- replace 替换(支持正则表达式)
- charAt 根据下标找字符 (返回对应的字符串)
- charCodeAt 根据下标找字符的ascii码
- fontColor 返回一个font标签
- ...
静态方法
- String.formCharCode 将ascii转为字符串 返回字符串
object
万物皆对象、所有的内容都继承对应的object(object的方法是可以共享到其他对象)
对象声明(内容以key value存储)
字面量
var obj = {}
new关键词声明
var obj = new Object()
对象的内容访问
使用对应的键(属性名)来访问
.属性名访问
var obj = {name:'jack'}
console.log(obj.name)
[属性名字符串]访问
var obj = {name:'rose'}
console.log(obj['name'])
对象的内容判断 使用in关键词
var obj = {name:'tom'}
console.log('name' in obj) //name属性是否存在于obj中 true
对象的内容删除
使用delete关键词
var obj = {}
//通过访问来进行赋值 就是设置
obj.name = '张三'
console.log(obj) // {name:'张三'}
delete obj.name //删除obj中的name属性
console.log(obj) //{}
对象的内容遍历
使用for in来进行对象的遍历 (for in遍历的属性都是可枚举的)
var obj = {
name:'jack',
age:18,
sex:'男'
}
//使用for in进行遍历
//for in遍历的是对象的key 得到的是key的字符串
for(var key in obj){
console.log(key) //name age sex
console.log(typeof key) //string
//通过key字符串来访问值
console.log(obj[key])
}
object的方法
- toString方法 转字符串
- valueOf方法 得到对应的值 静态方法
- Object.keys (获取所有的key 返回一个数组)
- Object.values (获取所有的值 返回一个数组)
Math
Math的相关属性及方法
属性
- PI
- E
方法
- pow 取幂次方
- sqrt 开平方
- random 取0-1的随机数(不包含1的)
- floor 向下取整
- ceil 向上取整
- round 四舍五入
- abs 绝对值
- max 取最大值
- min 取最小值
- ....