JavaScript是一种专为与网页交互而设计的客户端脚本语言,最初是为了实现表单验证
JS组成:
- ECMAScript
- DOM (document 文档 整个文档 也就是编辑<html>开始到</html>结束)
- BOM(整个浏览器)
JS中的数据类型分为两大类:
1.基本数据类型
<1>数字 Number 100 3.14
<2>字符串 String 所有带双引号或者单引号
<3>布尔值 boolean true false
<4>特殊数据类型 null(空) undefined(未声明)
2.复合数据类型/引用数据类型
<1>对象object {}
<2>数组 array []
[注] 所有的复合数据类型都不直接存储在我们的函数中, 存储在堆段
[注] 函数运行的内存空间是预先分配好的 一旦被分配好内存空间,就不能进行改变了
[注] 在堆段,我们班可以想要使用内存,就随时分配多少内存
[注] 所有的复合数据类型 ,存储的都是门牌号,也就是地址,所以这类型的数据也叫做引用数 据类型
一元运算符
a++ 先取a的值,然后再进行+1
++a 先+1再取a的值
var a = 5 alert(a++) //5 alert(a) //6 alert(++a) //6 alert(a) //6
if和switch都是分支语句
三目运算符/条件运算符
[格式] 表达式1 ? 表达式2 : 表达式3;
[执行过程] 先求解表达式1,若为非0(真),则求解表达式2,若表达式1为0(假),则求解表达式3
while循环和do while循环的区别
1.while循环是先判断表达式,然后再去执行循环语句
2.do while循环先执行一次循环语句,然后再去判断一次表达式
arguments
[注] 在每一个函数内,都有一个内置的数组,是一个变量,叫做arguments.arguments可以存储当前函数传入的所有参数,而且,是通过传参的顺序进行排序的
递归概念:
函数可以自己调用自己,称为递归调用
[注] 我们可以写出递归,但是我们并不知道他是如何得出结果
函数的递归调用
[方法]:
- 首先去找临界值,既无需计算,获取的值
- 找这一次和上一次的关系
- 假设当前函数寂静可以使用了,调用自身计算上一次的运行结果,再写出这词的运行结果
[特点]:
- 必须有参数
- 必须有return
[缺点]:递归会在短时间内,使内存剧增
栈结构:
从一个口进,一个口出,先进后出
push()
[格式] 数组.push(元素...)
[功能] 给数组末尾添加元素
[参数] 我们要添加的元素,参数个数随意
[返回值] 添加元素以后,数组的长度
pop()
[格式] 数组.pop(元素...)
[功能] 移除数组末尾的最后一个元素
[返回值] 移除的元素
shift()
[格式] 数组.shift(元素...)
[功能] 从数组的头部取下一个元素
[返回值] 取下的元素
concat()
[格式] 数组1.concat(数组2)
[功能] 将两个数组,合并成一个新的数组,源数组并不会被改变
[参数] 我们要合并的数组
[返回值] 我们合并好的新数组
slice()
[格式] 数组.slice(start,end)
[功能] 基于当前数组获取指定区域元素并创建一个新的数组,源数组不改变
[参数] start开始获取区域的下标,ernd结束获取区域的下标,不包括end下标位置的元素
[返回值] 指定区域元素生成的新数组
splice()
[格式] 数组.splice(startIndex,deleteCount,元素...)
[功能] 可以完成删除,插入,替换操作
[参数] 参数1 截取的开始下标
参数2 截取的长度
参数3
在截取的开始一下标位置,我们要插入的元素,插入的元素的个数所以
[注] 会对元素组进行修改
[返回值] 截取调掉的元素,组成的数组
join()
[格式] 数组.join(拼接符)
[功能] 使用拼接符将数组中的元素拼接成字符串
[参数] 拼接符
[返回值] 拼接好的字符串
二维数组
[注] 所谓二维数组,在数组中元素还为数组 例:let arr = [ [ ] , [ ] , [ ] ,[ ] ]
系统排序方法
reverse()
[功能] 逆向排序
[格式] 数组.reverser()
[例子] let arr = [ 10 ,20 ,30 ,40];
arr.reverse()
console.log(arr) // 40,30,20,10
sort()
[功能] 升序排序
[格式] 数组.sort()
[例子] let arr =[ 5 ,4, 3 , 2 , 1]
arr.sort()
console.log(arr) // 1,2,3,4,5
[注] 一般情况下,我们需要自己去编写排序算法(也就是我们要先处理数组里的数据,让他有序 排列先),系统提供给我们排序函数,因此用的比较少
冒泡排序
[原理] 前后两个数两两进行比较,如果符合交换条件,交换位置,直到所有排序完成,结束比较
选择排序
[原理] 通过比较首位选出最小的数放在第一个位置上,然后在其余的数中选择次小数放在第二个位置,以此类推,知道所有的数成为有序序列
字符串
charAt()
[格式] 字符串,charAt(下标)
[返回值] 对应下标的字符
[注] 我们可以直接通过字符下标去访问该字符
chartCodeAt()
[格式] 字符串,chartCodeAt(下标)
[返回值] 返回字符串中对应下标字符的ASCII码值
String.fromCharCode()
[格式] String,fromCharCode(ASCII码值)
[参数] ASCII码值,个数任意
[返回值] ASCII码值对应字符组成的字符串
concat()
[格式] 字符串1.concat(字符串2)
[参数] 要拼接的字符串
[返回值] 拼接好的字符串,生成新字符串
[注] 一般情况下很少用,使用字符串拼接符 +
indexOf()
[格式] 字符串,indexOf(子串,开始查找的位置)
[返回值] 如果在字符串查找到了子串第一次出现的位置,返回子串出现的位置,否则没有查找到返回0
lastIndexOf()
[格式] 字符串,lastIndexOf(子串)
[返回值] 子串在字符串中最后一次出现的位置,如果没有,返回-1
search()
[格式] 字符串,search(子串/正则)
[返回值] 查询到的结果
[注] 正则表达式可以添加修饰符,i代表忽略大小写,g代表全局匹配
replace()
[格式] 字符串,replace(子串/正则,替换的新的字符串)
[返回值] 替换完成以后生成的新的字符串
[注] 想替换所有符合条件字符串,就必须使用正则表达式完成
substring()
[格式] 字符串,substring(start,end)
[作用] 字符串提取,在指定范围内,提取字符串,生成新字符串
[返回值] 生成的新的字符串
[注] 不包含结束位置
split()
[格式] 字符串,split(分割符,生成数组的长度)
[返回值] 通过分割符,分割成的装有子串的数组
[注]
- 分割符,整体
- 会分割出空字符串
- 如果分割符是空字符" ",那么我们字符串会分割成单个字符串
toLowerCase()
[格式] 字符串.toLowerCase()
[返回值] 全小写
toUpperCase()
[格式] 字符串.toUpperCase()
[返回值] 全大写
数组
indexOf
[格式] 数组.indexOf(元素,index)
[注] 使用的方式和字符串的方式一致
forEach()
[格式] 数组.forEach((item,index,array)=>{
item 当前遍历的元素
index 当前遍历的下标
array 当前数组
})
[功能] 遍历数组
map()
[格式] 数组.map((item,index,array)=>{
item 当前遍历的元素
index 当前遍历的下标
array 当前数组
})
[功能] 遍历组数->操作->返回
reduce()
[格式] 数组.reduce((pre,next,index,array)=>{
pre 上一次遍历的return后面的值
next 当前遍历到的元素
})
[功能] 归并
filter()
[格式] 数组.filter((item,index,array)=>{ })
[功能] 过滤
some()
[格式] 数组.some((item,index,array)=>{ })
[功能] 判断return后面的条件是否成立,如果成立返回true,否则返回false
[注] 如果匹配成功,返回true,后面不再进行比较
every()
[格式] 数组.every((item,index,array)=>{ })
[功能] 判断return后面的条件是否成立,如果成立返回true,否则返回false
[注] 如果判断有元素不符合条件,返回false,直接终止循环
Math对象
Math常用函数
Math.round() // 四舍五入
Math.random() // 随机0~1之间随机数
Math.max() // 返回较大值
Math.min() // 返回较小值
Math.abs() // 返回绝对值
Math.ceil() // 返回向上取整
Math.floor() // 返回向下取整
Math.abs() // 返回绝对值
Math.pow(x,y) // 返回x的y次方
Math.sqrt() // 返回开平方
Math.sin() / cos() / tan() // 返回正弦/余弦/正切
日期对象定时器
setInterval()
[格式] setInterval(函数,毫秒数)
[功能] 每隔所传参数的毫秒数,就吊桶一次所传参数的函数
cookie
cookie是指存在本地客户端的数据,基本操作包括增删改查四个部分
正则表达式
[含义] 正则表达式是有普通字符及特殊字符组成的对字符串进行过滤的逻辑公式
Ajax
[含义] 是一种异步加载数据的技术
[作用] 可以通过使用Ajax,实现页面的局部刷新
[协议] GET/POST
[注] 现在大多都是axios 因为vue官网建议,并且功能更加强大