![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 59
巴卫939
这个作者很懒,什么都没留下…
展开
-
for in 和for of的区别
文章目录1.遍历数组通常用for循环2.for in遍历数组3.遍历对象总结1.遍历数组通常用for循环ES5的话也可以使用forEach,ES5具有遍历数组功能的还有map、filter、some、every、reduce、reduceRight等,只不过他们的返回结果不一样。但是使用foreach遍历数组的话,使用break不能中断循环,使用return也不能返回到外层函数。2.for in遍历数组index索引为字符串型数字,不能直接进行几何运算遍历顺序有可能不是按照实际数组的内部顺序使原创 2021-08-29 15:26:45 · 223 阅读 · 1 评论 -
XSS攻击原理及防范
文章目录一、XSS攻击简介二、XSS攻击分类1.反射型2.存储型3.DOM-based型三、XSS防范1.cookie安全策略2.X-XSS-Protection设置3.XSS防御HTML编码4.XSS 防御HTML Attribute编码5.XSS防御之javascript编码6.XSS 防御之 URL 编码7.XSS 防御之 CSS 编码8.开启CSP网页安全政策防止XSS攻击一、XSS攻击简介XSS 即(Cross Site Scripting)中文名称为:跨站脚本攻击。XSS的重点不在于跨站点,原创 2021-08-29 15:15:06 · 5335 阅读 · 0 评论 -
CSRF攻击原理与防御方法
文章目录CSRF概念CSRF攻击攻击原理及过程CSRF漏洞检测防御CSRF攻击1.验证 HTTP Referer 字段2.在请求地址中添加 token 并验证3.在 HTTP 头中自定义属性并验证CSRF概念CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添原创 2021-08-29 14:55:34 · 287 阅读 · 0 评论 -
Cookie、session和localStorage、以及sessionStorage之间的区别
文章目录一、Cookie与session二、cookie和session的区别:三、web Storage和Cookie的区别四、浏览器本地存储与服务器端存储的区别五、sessionStorage、localStorage和cookie的区别六、sessionStorage与页面js数据对象的区别一、Cookie与sessioncookie的内容主要包括:名字、值、过期时间、路径和域。路径与域一起构成cookie的作用范围。若不设置时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,原创 2021-08-29 14:42:20 · 125 阅读 · 0 评论 -
背包问题-JavaScript
文章目录一、0-1背包1.1.题目描述一、0-1背包1.1.题目描述有N件物品和一个最多能被重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。...原创 2021-08-22 00:57:12 · 130 阅读 · 0 评论 -
字节2017前端笔试题学习笔记
仅供学习1.变量a是一个64位有符号的整数,初始值用16进制表示为:0Xf000000000000000; 变量b是一个64位有符号的整数,初始值用16进制表示为:0x7FFFFFFFFFFFFFFF。 则a-b的结果用10进制表示为多少?()答案:2^62 + 2^61 + 2^60+1解析:负数,原码转补码:取反加1。如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1,其余各位取反,然后再整个数加1。原创 2021-08-21 13:49:44 · 574 阅读 · 0 评论 -
剑指 Offer 11. 旋转数组的最小数字-js
一、题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0二、解题方法排序数组的查找问题首先考虑使用 二分法 解决算法流程:声明 i,j 双指针分别指向数组左右两端;循环二分: 设 Math.floor((i +原创 2021-08-20 17:46:26 · 120 阅读 · 0 评论 -
剑指 Offer 10- II. 青蛙跳台阶问题-js
一、题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21示例 3:输入:n = 0输出:1二、解题方法var numWays = function(n) {// 实际就是斐波那契数列if(n==0) return 1if(n==1||n==2) retu原创 2021-08-20 17:32:15 · 83 阅读 · 0 评论 -
剑指 Offer 10- I. 斐波那契数列-js
一、题目描述写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1示例 2:输入:n = 5输出原创 2021-08-20 17:29:48 · 311 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列-js
一、题目描述用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“deleteHead”,“appendTa原创 2021-08-20 17:18:15 · 149 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表-js
一、题目描述输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]二、解题方法在面试中,如果我们打算 修改输入的数据,则最好先问面试官是否允许修改思路如下首先肯定要遍历链表,遍历的顺序是从头到尾,可输出的顺序是从尾到头。也就是,第一个遍历到的节点最后一个输出,最后遍历到的节点先出。也就是先进后出,即可以利用栈结构解决。代码如下:var reversePrint = function(head) {let原创 2021-08-20 16:56:23 · 73 阅读 · 0 评论 -
剑指 Offer 03. 数组中重复的数字-js
一、题目描述在一个长度为 n 的数组里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3二、解题方法1.直接遍历数组由于只需要找出数组中任意一个重复的数字,因此遍历数组,遇到重复的数字即返回。为了判断一个数字是否重复遇到,使用集合存储已经遇到的数字,如果遇到的一个数字已经在集合中,则当前的数字是重复数字。初始化集合为空原创 2021-08-20 16:47:29 · 137 阅读 · 0 评论