学习篇(一)

编程入门 行业动态 更新时间:2024-10-27 22:30:16

学习篇(一)

学习篇(一)

学习js逆向课程

一、js反爬的原理

反爬虫定义:限制爬虫程序访问服务器资源和获取数据的行为称为反爬虫。限制手段包括但不限于请求限制、拒绝响应、客户端身份验证、文本混淆和使用动态渲染技术。可分为主动型反爬和被动型反爬。

二、javascript

1、数据类型

Object对象:是以Key-Value键值对的的形式存在的集合,键都是字符串类型,值是任意类型。其拷贝分为深浅拷贝,浅拷贝只复制对象内存地址,类似于指针;深拷贝则是完全克隆,生成一个新的对象。
Array数组:是一个有序排列的集合,值为任意类型,也分为深浅拷贝。其形式与python的list类似。注意:splice方法既可以添加也可以删除;map遍历方法会返回一个新的数组,forEach遍历不会。
String字符串:由单引号/双引号定义的类型
Number数字:任何表示数字的类型
Boolean布尔值:true/false
Map映射:也是Key-Value对关系的集合,但其键可以为任何类型。
Set集合:相当于不重复值的数组。
null/undefined:null表示空值;undefined表示未定义。因此比较通常用三个等号(===),赋值用null。

2、控制流

循环:while、for、Array.map、Array.forEach
条件判断:if(){}else{}
函数
定义:
1、带函数名
      function funcName(param){statement}
2、匿名函数
      (function(param){statement}())
变量作用域
定义:var,const,let定义的变量有作用域,var定义的变量在各自的函数内部起作用,const、let定义的变量为块级作用域
变量提升:扫描整个函数体的语句,将所有申明变量提升到函数顶部。(即不会出现变量未找到)
全局作用域:如果不指定var,const,let申明关键字来定义,该变量将会绑定到window全局变量上
块级作用域:let、const将作用在for、while等循环语句里
高阶函数
定义:接收另一个函数作为参数的函数被称作高阶函数
用途:回调函数(Callback)、数组操作(filter、sort、map、forEach)
闭包
定义:函数的返回值可以为函数;所有的参数和变量都保存在返回函数中;当调用返回函数时才会执行所有的运算逻辑。
用途:匿名自执行函数;封装;结果缓存。
特殊对象
JSON:JSON、对象的序列化(stringify)/反序列化操作(parse)
Date:JS的时间操作对象(new Date(dateString))

3、进阶

事件循环(Event Loop)
定义:主线程不断地重复获取执行消息、再获取执行不断循环的机制被称为事件循环
背景:JS是单线程;再处理异步操作的时候需要事件循环机制
相关概念:堆(Heap):大块非结构化内存区域,储存对象、数据;栈(Stack):调用栈,储存该次循环待主程序执行的任务;队列(Queue):事件队列,先进先出被推入调用栈中
拓展:宏任务(Macro Task)和微任务(Micro Task);Node.js事件循环
原型链
概念:
prototype指向函数的原型对象;
__proto__每个new出来的对象都有一个这个属性指向对象的原型;
constructor每个原型都有一个这个属性指向该关联的构造函数
应用:继承、代码复用
异步编程
回调函数Callback:通过传入回调函数作为参数再函数中异步执行,优点是简单,缺点是回调地狱(ES5)
Promise:ES6中出现的异步解决方案,可以获取异步操作消息的对象,resolve/reject,then/catch,油电是解决了回调地狱,缺点是可读性不高(ES6)
async/await:ES8(ES2017)中出现的异步解决方案,基于Promise的语法糖,需要了解Promise相关知识。async返回Promise对象,async函数遇到await时会终止运行,直到相应的Promise状态变为resolved。优点是解决了Promise代码可读性问题,缺点是多个并行异步操作需要用Promise.all来执行(ES8)
ps:逆向过程中通常不会看到async/await语法。
浏览器存储
Cookies:主要用于与服务端通信,储存量小
LocalStorage:储存量比Cookies大,但只能储存字符串
SessionStorage:只存在于当前Session,关闭浏览器丢失。其他与LocalStorage一致
IndexedDB:相当于浏览器上的SQL数据库,有更大的储存空间,但API较难掌握
跨域
定义:客户端与不同源的服务端通信
解决办法:
    CORS:跨域资源共享,解决跨域请求的成熟方案,但可能会暴露接口
    JSONP:基于<script>标签具有可跨域特性,但只能用于GET请求
   

更多推荐

学习篇(一)

本文发布于:2024-03-13 13:37:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1734109.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!