- 博客(12)
- 收藏
- 关注
原创 详解跨站请求伪造攻击(CSRF)
CSRF是一种Web安全漏洞,攻击者利用用户在某个受信任网站上的登录状态,通过第三方网站发送伪造的请求。由于这些请求带有用户的身份验证信息,服务器会认为这些请求是合法的,从而执行相应的操作。
2024-10-15 09:18:31
426
原创 函数柯里化
柯里化(Currying)又称部分求值,一个柯里化的函数首先会接收一些参数,接收了这些参数后,该函数并不会立即求值,而是继续返回另外一个函数,刚才传入的参数在函数形成的闭包中被保存起来。待到函数被真正需要求值的时候,之前传入的所有参数都会被一次性用于求值。柯里化是一种函数的转换,它是指将一个函数从可调用的 f(a, b, c) 转换为可调用的 f(a)(b)(c)或者f(a, b)(c)或者f(a)(b, c)柯里化不会调用函数。它只是对函数进行转换。
2024-10-15 09:15:36
331
原创 函数的作用域和执行上下文
作用域是一套关于如何存储变量当中的值,并且能在之后对这个值进行访问和修改的规则。任何一对花括号 { } 中的语句集都属于一个块,在这之中定义的所有变量在代码块外都是不可见的,我们称之为块级作用域。执行上下文栈按照函数的调用顺序来管理执行上下文,栈底永远是全局上下文,栈顶是当前正在执行的函数。变量对象是与执行上下文相关的数据作用域,用于存储被定义在上下文中的变量和函数声明。词法作用域(静态性):JavaScript 的作用域在代码的。由当前执行环境与所有父级执行环境的一系列变量对象组成,动态作用域(动态性)
2024-08-09 14:06:39
426
原创 手写call,apply,bind
但此时的myBind函数创建的新函数并不能当做构造函数使用,为了解决此问题,我们需要将myBind函数中的prototype指向目标函数的prototype,constructor也需要指向目标函数(也就是手写一个继承)既然返回的是一个函数,这个函数除了自调用,我们把它作为构造函数(也就是说使用new来调用)可以吗,按常理来说是可以的。原生 bind 函数也是可以实现的。
2024-08-06 20:07:31
259
原创 script标签中的async和defer
当浏览器遇到带有 async 属性的 script 时,请求该脚本的网络请求是异步的,不会阻塞浏览器解析 HTML,一旦网络请求回来之后,如果此时 HTML 还没有解析完,浏览器会暂停解析,先让 JS 引擎执行代码,执行完毕后再进行解析。当浏览器遇到带有 defer 属性的 script 时,获取该脚本的网络请求也是异步的,不会阻塞浏览器解析 HTML,一旦网络请求回来之后,如果此时 HTML 还没有解析完,浏览器不会暂停解析并执行 JS 代码,而是等待 HTML 解析完毕再执行 JS 代码。
2024-08-06 19:39:18
776
原创 JS垃圾回收机制
新生代的对象为存活时间较短的对象,即新产生的对象,通常只支持1~8M的容量,而老生代的对象为存活时间较长或常驻内存的对象,即经历过新生代垃圾回收后还存活下来的对象,容量通常比较大。当我们的内存能够使我们流畅的运行代码,其实我们是没有必要进行清理内存的,它会稍稍延迟一下清理过程,也无需一次性清理完所有非活动对象内存,可以按需逐一进行清理直到所有的非活动对象都清理完毕。它的标记阶段和标记清除算法没有什么不同,只是标记结束后,标记整理算法会将不需要清理的对象向内存的一端移动,最后清理掉边界的内存。
2024-08-05 22:50:05
2131
1
原创 8.3好未来前端转正实习凉经
闭包 作用域,作用域链 原型链 let,const,var 箭头函数 call,apply,bind defer和async 垃圾回收 Map,Set,WeakMap,WeakSet,symbol 两栏布局 元素水平垂直居中 rem,px,vw css盒模型 img标签里的title和alt 算法:力扣680.验证回文串||680. 验证回文串 II - 力扣(LeetCode)
2024-08-05 17:32:00
343
原创 ES6新增数据结构:Set,Map,WeakSet,WeakMap
Set对象类似于数组,且成员的值都是唯一的,允许存储任何类型的唯一值,无论是原始值还是对象引用。Set存储元素是无序的,不能通过下标访问。Set本身是一个构造函数,用来生成Set数据结构最常用来进行数组去重·
2024-08-05 11:10:03
910
原创 网络相关面试题
Http协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份;Https是身披SSL(Secure Socket Layer)外壳的Http,运行于SSL上,SSL运行于TCP之上,是添加了加密和认证机制的HTTP。端口不同:Http与Http使用不同的连接方式,用的端口也不一样,前者是80,后者是443;资源消耗:和HTTP通信相比,Https通信会由于加减密处理消耗更多的CPU和内存资源;开销:Https通信需要证书,而证书一般需要向认证机构购买;401:未授权,需要用户的身份认证。
2024-03-24 15:43:06
170
原创 js面试题
当页面上的一个元素被点击时,先从document向下一层层捕获到该元素。然后再向上冒泡,一层层触发。事件委托是将事件写在父级元素上,e.target是事件捕获时那个最小的元素,即选中的元素。所以可以根据e.target操作选中的元素。这样不需要给每个子元素绑定事件,代码更加简约。1.执行上下文:可以理解为当前代码的运行环境,作用是用来保存当前代码运行时所需要的数据,在全局环境,函数环境中会创建执行上下文 /2.作用域:作用域是在运行代码时代码中的某些特定部分中变量,函数和对象的可访问性。
2024-03-24 15:09:23
323
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人