第一周总结

116 阅读7分钟

内容回顾 第一周内容

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 取最小值
  • ....