目录
基本数据类型
Number
字面量创建 var num=123(一切数字都是数值类型 eg:二进制/十进制/八进制/十六进制)
NaN :一个非数字
String:被引号包裹的所有内容
Boolean:只有true(1)和false(0)
null:空
undefined:未定义
Symbol:唯一的值
BigInt:大数据
复杂数据类型/对象数据类型/引用数据类型
对象(Object)--->{}包裹的键值对,用逗号分隔开
函数类型(Function)
数组类型(Array)--->[]包裹的数据,带有从0开始的自然数的索引
伪数组(Set)--->内部存储唯一的数据集
日期(Data)
正则(RegExp)
数据类型转换
判断数据类型 ‘typeof’,'isNaN',...
其他数据类型转数值
Number(变量)
paseInt(变量)
paseFloat(变量)
算术运算符
其他数据类型转字符串
变量.toString()
String(变量)
使用+拼接运算
其他数据类型转布尔
Boolean(变量)
运算符
数学运算符
+,-,*,/,%
比较运算符
== - 比较符号两边的值是否相等,不管数据类型
=== - 比较符号两边的值和数据类型是否都相等
!= - 比较符号两边的值是否不等
!== - 比较符号两边的数据类型和值是否不等
>= - 比较左边的值是否 **大于或等于** 右边的值
<= - 比较左边的值是否 **小于或等于** 右边的值
> - 比较左边的值是否 **大于** 右边的值
< - 比较左边的值是否 **小于** 右边的值
逻辑运算符
&& 与 当左边出现false,直接返回false
|| 或 当左边出现true,直接返回true
! 取反
三目运算符
表达式?数据1:数据2
赋值运算符
= += -= *= /= %=
自增运算符(一元运算符)
++
--注意:前置时,`++a`:表示先运算后使用;后置时,`a++`:表示先使用后运算
if
if(条件判断){条件成立就执行的代码段}
if-else:条件满足就执行if的{},条件不满足就执行else的{}
if-else-if:哪个条件满足,就执行哪一个的{},如果都不满足就执行else的{},前面的条件满足了,后面的就不会执行
switch-case
通过===对switch()里的内容和case后面的内容进行比对
哪个case满足就执行后面对应的代码
break会跳出switch,中止执行
default 当所有的case都不满足的时候执行
while
先进行条件判断,若满足然后执行{循坏代码},再进行条件判断,直到条件不成立,跳出循环
do-while
先执行{循环代码},再进行条件判断,若满足则继续执行{},否则跳出循环
for
for(var i=0;条件判断;i++){循环代码}
break 终止循环体
continue 终止本次循坏,跳转下一次循环
函数
定义方式
声明式 ‘function(){}'
赋值式 'var fn= function(){}'
调用方式
声明式函数:可以再定义前或者定义后调用
赋值式函数:只能再定义后调用
递归函数
自己调用自己 一定要写暂停条件,避免内存溢出
参数
形参 函数内部使用的变量
实参 函数调用传入的值
arguments伪数组,所有实参的集合
return
函数执行完返回的结果,若不写返回的就是undefined
终止函数的执行
预解析
在执行代码之前对代码进行的通读和解释(变量提升,函数提升)将var和function进行提升
作用域
- 访问规则:想要获取某个变量值
- 赋值规则:找到变量并给其赋值
访问规则
// 案例 function f1(){ var a = 2 function f2(){ console.log(a) // 2 } f2() } f1()
访问规则的总结
- 如果当前作用域有定义的时候就会直接使用当前作用域中的变量
- 如果当前作用域中没有定义就会往上级查找 ,上级没有继续往上查找,直到找到全局
- 如果全局有的话就直接输出 ,全局没有的话直接报错
赋值规则
// 案例1 function f1(){ function f2(){ a = 1 } f2() } f1() console.log(a) // 案例2 function f1() { var a = 1 function f2() { a = 2 console.log(a) } f2() console.log(a) } f1() console.log(a)
赋值规则总结
- 会往上级查找,上级存在的情况可以重新赋值,上级没有就一直往全局中查找
- 如果全局中有就使用全局中的变量
- 如果全局中没有定义变量 查找到全局的时候 ,会自己在全局中定义一个变量
函数封装三要素
功能
参数
返回值
补充
函数防抖
- 只执行最后一次的触发
- 在固定时间内触发次数过多,只执行一次( 比如: 密码校验)
- 定时器中执行校验操作,
- 每次输入的时候都将上一次的定时间关闭
函数节流
- 只执行第一次的触发
- 通过节流阀(开关)控制