笔记
文章平均质量分 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 · 323 阅读 · 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 · 6648 阅读 · 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 · 394 阅读 · 0 评论 -
Cookie、session和localStorage、以及sessionStorage之间的区别
文章目录一、Cookie与session二、cookie和session的区别:三、web Storage和Cookie的区别四、浏览器本地存储与服务器端存储的区别五、sessionStorage、localStorage和cookie的区别六、sessionStorage与页面js数据对象的区别 一、Cookie与session cookie的内容主要包括:名字、值、过期时间、路径和域。路径与域一起构成cookie的作用范围。若不设置时间,则表示这个cookie的生命期为浏览器会话期间,关闭浏览器窗口,原创 2021-08-29 14:42:20 · 207 阅读 · 0 评论 -
背包问题-JavaScript
文章目录一、0-1背包1.1.题目描述 一、0-1背包 1.1.题目描述 有N件物品和一个最多能被重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。 ...原创 2021-08-22 00:57:12 · 203 阅读 · 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 · 704 阅读 · 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 · 186 阅读 · 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 1 if(n==1||n==2) retu原创 2021-08-20 17:32:15 · 146 阅读 · 0 评论 -
剑指 Offer 10- I. 斐波那契数列-js
一、题目描述 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(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 · 502 阅读 · 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 · 224 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表-js
一、题目描述 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1: 输入:head = [1,3,2] 输出:[2,3,1] 二、解题方法 在面试中,如果我们打算 修改输入的数据,则最好先问面试官是否允许修改 思路如下 首先肯定要遍历链表,遍历的顺序是从头到尾,可输出的顺序是从尾到头。也就是,第一个遍历到的节点最后一个输出,最后遍历到的节点先出。也就是先进后出,即可以利用栈结构解决。 代码如下: var reversePrint = function(head) { let原创 2021-08-20 16:56:23 · 148 阅读 · 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 · 198 阅读 · 0 评论
分享