JavaScript基础回顾

变量声明

var 伪全局变量 const常量(块级作用域) let 块级作用域变量

运算符及表达式

算术运算  + - * / % ++ --

逻辑运算 &&(同true取最后一个 false取第一个)  ||(有true取第一个true  false取最后一个)  !(取反)

比较运算  >  <   <=   >=  !=  ==    ===

赋值运算  =  +=  /=%=  *=   -=

三目运算 表达式?true的结果:false的结果

位运算 >>  <<(执行最快)

基础数据类型

字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol,大数值类型(BigInt)

强制转换的方法

String()

Boolean()

Number()不会忽略后面的不是数值的内容 parseInt()忽略后面的不是数值的内容 parseFloat()

条件控制语句

if  else  else if

Switch  case  break  (采用===)

循环结构

for  根据对应的判断条件 迭代条件 和对应的初始值进行判断

for in  遍历对象 用于遍历key

for of 遍历数组 用于遍历value(必须实现迭代器  size  length 属性)

while  根据对应的判断条件 和迭代条件(循环体中) 进行判断(初始值在外面)

do while  (先做一次后判断)

函数(Funciton 为构造)

使用function 声明 分为匿名函数(只调用一次)和具名函数(重复调用)

调用函数  函数名() 自执行函数(函数)()

arguments 伪数组 参数数组(获取所有传递的参数)

字符串

字符串不可变

字符串的相关方法

indexOf  根据字符串找下标(找第一次出现)

lastIndexOf (从后往前找 找第一次出现的下标)

search  (支持正则)

charAt 根据字符串找下标的ASCII码

charCodeAt toUpperCase  转大写

  toLowerCase  转小写

slice 截取

substring 截取

substr 截取

concat 连接

split  分割(支持正则)

replace  替换(支持正则)

match  匹配(返回一个匹配的数组  支持正则)

字符串属性

length 返回对应的字符个数(通过下标来访问对应的字符)

 

数组

数组是可变的

数组的相关方法

pop 删除最后一个

push 添加到最后

shift 删除第一个

unshift 添加第一个

concat 连接  

join 转为字符串

sort 排序

reverse 反转

 splice 删除

slice 截取

indexOf 根据对应的元素找下标

高阶函数

forEach  遍历

map   遍历

reduce   计算

reduceRight  计算

filter  过滤

some  判断有符合条件的

every  判断每一个是否都符合条件

find

findIndex

data

日期对象(获取的是本地时间)

日期对线的方法

get(获取)

getFullYear 年  getMonth 月(1月为0) getDay 星期几(星期天为0) getDate(月中的第几天)getHours(时 24小时制 24为0 )getMinutes(分 60为0) getSeconds(秒 60为0)...

set(设置 设置超出自动向上递增)

setFullYear 年 setMonth 月(1月为0)setDay 星期几(星期天为0) setDate(月中的第几天)setHours(时 24小时制 24为0 )setMinutes(分 60为0) setSeconds(秒 60为0)...

时间戳的获取

getTime获取

Date.now()获取

Object

对象里面的存储以key:value存储 通过key可以访问value

obj.key 及 obj[key]

BOM

顶层对象 window

reload 刷新 open打开 close关闭 print打印 弹窗的方法(alert confirm prompt)控制台打印(console.(log,debug,info,error,warn))resizeTo窗口大小改变 moveTo改位置  scrollTo滚动条位置

location 地址栏对象

属性:href (地址) pathname(路径) host(主机) hostname(主机名)  hash(#后面的内容) search(?后面的) 协议(protocol)origin(跨域)

方法:location.replace替换地址(不会加入历史) location.assign(会加入历史)  location.reload 刷新

history 历史对象

属性:length 获取个数  state 状态

方法:forward 前进 back 后退 go 任意的历史页面 pushState(更改当前的地址 加入历史页面)replaceState(更改当前的地址 加入历史页面)

history路由: 通过onpopstate监听

screen 屏幕对象

属性 availWidth availHeight (获取屏幕的宽高 可用于js做适配)

frames 框架对象(它是一个独立的window)

navigator 导航对象

属性:userAgent(浏览器系统)

DOM

顶层对象 document 

节点类型 

元素节点element 属性节点 attribute 文本节点 text

节点属性

nodeValue节点值  nodeName节点名 nodeType节点类型

节点操作相关属性 

parentNode 父节点 parentElement 父元素节点 childNodes子节点 children子元素节点 firstChild第一个子节点 lastChild最后一个子节点 previousSibling 前一个兄弟节点 nextSibling后一个兄弟节点 previousElementSibling前一个兄弟元素节点 nextElementSibling后一个兄弟元素节点

节点创建

document.createElement 创建元素节点

document.createAttribute 创建属性节点  

document.createTextNode 创建文本节点

节点的插入

append  追加多个子节点

appendChild 追加一个子节点

insertBefore 插入某个节点到子节点前面

节点的替换

replaceChild 讲一个节点替换某个节点 remove 删除 cloneNode 节点克隆

元素节点的获取

getElementById  

getElementByClassName

getElementByName

getElementByTagName

querySelector(根据选择器获取第一个)

querySelectorAll(根据选择器获取所有的)

元素节点的属性

innerHTML  innerText className id title style 

atributes 获取所有的属性节点 (nameNodeMap 伪数组)

对于默认的属性直接. a标签的href input 标签的value等

属性的操作

getAttribute setAttribute removeArrtibute

事件

事件流  冒泡(从里到外)捕获(从外到里)

常用的事件分类

鼠标事件mouse开头的 (mouseenter和mouserover(会冒泡))

键盘事件 key开头(keypress和keydown)

html事件(change,input,focus,blur ,submit,reset,select...)

event对象

属性:target offsetX offsetY pageX pageY clientX  clientY screenX screenY button (ctrlKey shiftKey altKey) type  keyCode  charCode 

this

this指向当前事件触发的元素  谁调用this this就指向谁

正则(Regexp 构造)

声明形式://     new Regexp()

修饰符

g 全局 i 忽略大小写 m 分组

元字符

[] {} ()^ $ 

+一个到多个   * 零个到多个 ?零个到一个 

\d数字  \D  \s空白   \S  \w数字字母下划线   \W

. 表示所有 

方法

test  测试(返回true 和false) exec 执行(返回数组)

cookie

cookie存在于浏览器端的一个存储容器,它是为了解决http的无状态问题

cookie的获取

document.cookie

cookie的结构

key=value;expires=过期时间;path=路径;domain=跨域地址;secure安全

cookie的特性

 随请求分发

大小4kb

存储的数据为字符串

存储在浏览器上

localstorage 本地存储 sessionstorage 本地存储(浏览器关闭直接删除)

大小5MB

存储的数据类型较多

不会随请求分发

不能自动删除

json格式

json是一种数据交互格式。一种是对象{} 一种是数组[],key一般是字符串(""),值可以是任意

序列化方法

JSON.stringify

反序列化

JSON.parse

window.eval (不安全的)

es5 es6

es5新增

严格模式  新增数组的高阶函数 (存在函数的this)this执行更改的方法(bind apply call)

es6新增

字符串新增的方法 includes endsWith starsWith repeat

数组新增方法 Array.from() Array.of find findIndex

函数新增 箭头函数 默认参数 

新增值以及修饰符  symbol BigInt  const  let

新增对象  set  map 

解构 {} 扩展运算符...

新增for in  for of

新增模块化  import  export

面向对象

对象的抽取(行为抽方法  名词抽属性)

原型

prototype  属于函数的(显式原型)

__proto__ 属于对象的(隐式原型) 指向对应构造函数的prototype

将方法放在原型上 属性放在构造函数里面

static关键词 (静态的)

修饰属性及方法(构造函数名调用)

原型链

找__proto__里面的属性的过程 称之为原型链

对象的继承

class extends关键词实现继承

原型继承

对象冒充(无法获取原型上面的内容)

组合继承(对象冒充+原型继承)

面向对象的三大特性

封装 继承 多态(重写)

闭包

概述:函数嵌套函数,外部函数的参数或变量被内部函数引用

闭包的作用

作为缓存  防抖 节流 函数柯里化

闭包的缺点和优点

占用内存,对应的函数内存的参数可以不被回收

外部函数的参数不会被外界污染。内部函数要保持对外部函数的引用

promise

概述:es6新增的一个类,用于解决回调地狱的问题

promise原型方法

then  catch  finally 

promise静态方法

all  race resolve reject allSettled

解决回调地狱的方案

在then 里面返回一个新的promise对象

asnyc和await 

async修饰函数 它会返回一个promise对象

await 在async里面 修饰promise对象 它会使当前线程等待(执行完才能释放)

宏任务和微任务

宏任务是异步的(script  setTimeout setInterval...)

微任务也是异步的 宏任务的一块(.then .catch .finally...)

执行顺序

先走同步 后走异步 异步中先宏后微(eventLoop 事件轮询)

posted @   半夕  阅读(93)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示