js基础
历史/概况
流程图
基础语法
注释
语句
表达式
变量
-
关键字
- function
- var
- let
- const
-
class
-
所有的变量都是在栈里面创建
数据类型
数据类型的转换
运算符(所有的运算符都有运算结果)
-
一目
-
二目
- +
- -
- *
- **
- /
- %
- =
- instanceOf
- ==/===
- !=/!==
- >/>=
- </<=
- &&/& (找假值)
- ||/| (找真值)
-
三目
流程控制语句
条件
循环
continue
break
函数基础
创建
- let foo=function(){}
- function foo(){}
- let foo=new Function();
调用
三要素
解构赋值
数组
- let [a,...b=99,c]=[1,2,3,4,5,6,7,8,9]
- let a,b,c; [a,...b=99,c]=[1,2,3,4,5,6,7,8,9];
对象
- let {name:a=10,age,gender:b,phone=77}={name:1,age:2,gender:3};
- let a,age,b,phone; ({name:a=10,age,gender:b,phone=77}={name:1,age:2,gender:3});
数组解构
对象结构
扩展运算符
...
数组扩展
- let a=[...[1,2,3],...[4,5,6]]
- Math.ma(...[1,2,3,4,5,6,7,8]);
对象扩展
- let obj = {...{name:"zs " ,gender:"male"},,..{age:18,name:"ls"}}将两个对象融合在一起了,重复的后面覆盖前面的。
函数进阶
函数作用域(局部作用于),韩珊瑚/方法中的this的确定,函数提升和变量提升,回调函数,递归函数,life
作用域
- 全局作用域
-
局部作用域
- 函数级作用域
-
块级作用域
- 是Es6单独提出来的,所用ES6声明变量的关键字都支持
this
函数提升和变量提升
回调函数
- function foo(fn,a){fn();}
- 把一个函数作为参数传入另外一个函数,前面那个函数就叫做回调函数,后面那个函数就被叫做高阶函数。
递归函数
- 当一个函数通过,直接或则间接的方式,调用自己本身,那么着这个函数就叫做递归函数,递归函数一般需要一个递归出口。
life,立即执行函数
箭头函数
引用类型
对象
-
创建
- let obj = {name:"23"};
- let obj = new Object();
-
属性和方法
- let age =18,key = "gender";let obj = {name:"zs",age,[key]:"male"(这是以变量的形式传入值),get color(return "red"),set color(value)}//key可以是一个字符串表达式
- 方法是特殊的属性,属性值是函数时,这个属性就叫做方法。
-
属性和方法的访问
-
属性名有两种
- 字符串
- symbol:唯一的,创建的名字相同,也是不同的。
-
.
- obj.name/obj.age
- obj.3,错误,点调用是不能访问命名法错误的方法。
-
[]
数据解构
-
数组
-
特点
-
创建
- let arr = [1,2,3;]
- let arr =new Array();
-
特性
-
索引
-
Index
-
下列操作都是基于数组:【1,2,3,4】
-
长度
-
数组的API
-
基本
-
增删查改
- push/unshift
- pop/shift/splice
- find/indexOf/includes
- 修改都是使用下标修改
-
连接
-
拼接
-
扁平化
- flat,将数组嵌套的变化为平一级,每一次往上平一级
-
反转
-
遍历
- foreach
-
filter
-
some
- every
-
readuce/reduceRight
- 迭代,一开始获取2个数据,结合换成一个再跟下一个结合,以此类推,完成。
-
数组静态方法
-
set
-
map
- 介绍
-
API
- clear
- delete
- forEach
- get
- has
- set
内置对象
构造器对象:Object、Boolean、String、Number、Function、Array、RegExp、Date、Error;
还有剩下3个对象:Math、JSON、全局对象。
包装对象:都是在点的时候自动发生。
- 三种原始类型的值:数值、字符串、布尔值,在特定条件下,也会自动转为对象,也就是原始类型的“包装对象”( wrapper )
- 所谓“包装对象”,是指与数值、字符串、布尔值分别相对应的 Number、String、Boolean 三个内置对 象。这三个内置对象可以把原始类型的值转换成(包装成)对象;同样的,包装后的对象也能转换成 (解包装成)原始类型的值;这个过程在?定条件下可以?发的完成,我们就可以称这两个过程分别 为“自动装箱”和“自动拆箱”
包装对象:都是在点的时候自动发生。
- 三种原始类型的值:数值、字符串、布尔值,在?定条件下,也会?动转为对象,也就是原始类型的“包装对象”( wrapper )
- 所谓“包装对象”,是指与数值、字符串、布尔值分别相对应的 Number、String、Boolean 三个内置对 象。这三个内置对象可以把原始类型的值转换成(包装成)对象;同样的,包装后的对象也能转换成 (解包装成)原始类型的值;这个过程在?定条件下可以?发的完成,我们就可以称这两个过程分别 为“自动装箱”和“自动拆箱”
两种包装对象共同具有的方法:valueOf() 和 toString()。
Error对象
Data
RegExp
变量环境
词法环境
JS基础大纲
原文:https://www.cnblogs.com/xyboke/p/12960524.html