首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2022我的前端面试总结

使用absolute或者fixed,使元素脱离文档流,这样他们发生变化就不会影响其他元素避免频繁操作DOM,可以创建一个文档片段documentFragment,在它上面应用所有DOM操作,最后再把它添加到文档中将元素先设置...Presto: Opera 曾经采用的就是 Presto 内核,Presto 内核被称为公认的浏览网页速度最快的内核,这得益于它在开发时的天生优势,在处理 JS 脚本等脚本语言时,会比其他的内核快3倍左右...localStorage;DOS攻击,发送合理请求,占用服务器资源,从而使用户无法访问服务器;破坏页面结构;流量劫持(将链接指向某网站);(2)攻击类型XSS 可以分为存储型、反射型和 DOM 型:存储型指的是恶意脚本会存储在目标服务器上...反射型指的是攻击者诱导用户访问一个带有恶意代码的 URL 后,服务器端接收数据后处理,然后把带有恶意代码的数据发送到浏览器端,浏览器端解析这段带有 XSS 代码的数据后当做脚本执行,最终完成 XSS 攻击...只能扁平化一层function flat(arr) { return [].concat(...arr);}全部扁平化:遍历原数组,若arr中含有数组则使用一次扩展运算符,直至没有为止。

1.1K30

前端杂货铺上新

零食 如何手动触发滚动事件 var myEvent = new Event('scroll') window.dispatchEvent(myEvent) 将一个数组拍平 方法一: let arrCurrent...= [1, [[2], 3, 4], 5] let resultArr = [] // 考察 reduce 用法,数组的 concat Array.isArray 方法,以及递归方法 function...flatten(arr) { return arr.reduce((lastItem, currentItem) => { return lastItem.concat(Array.isArray...复制到自己的分支上 MR(merge request) 想让人看,但不想对方合并,标题前缀写上:[WIP] ,注意逗号前面有空格,或 WIP: ,注意逗号前面有空格 酒水 缓存问题 问题描述: 想真机测试一下,在微信中访问...,从抓包中没有看到我想看到的几个 js 文件 过程分析: 1、怀疑是缓存原因,导致抓包没有成功 2、先从Chrome 中将整个 HTML 抓取下来(查看源码) 一开始是类似这样去引用 js 文件 <script

47310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    盘点JavaScript哪些常用的数组对象

    回顾 上一篇中我们盘点了 js 哪些最常用的内置对象,对Math、random以及Date对象进行了详细的讲解,这三个对象在往后的工作中也是发挥着举足轻重的位置,都是非常常用的对象,可以自己在编辑器中多加练习...这篇中我们对 js 中的数组对象进行说明,同样数组对象中也包含了非常多的元素方法,对数组的处理也扮演很重要的角色。...// 1、push() 在我们数组的末尾,添加一个或者多个数组元素 push 推 var arr = [1, 2, 3] var arr2 = arr.push(4, 'blue') console.log...unshift() 参数直接写数组元素就可以了 unshift完毕之后,返回的结果是新数组的长度 原数组也会发生变化 // 2、unshift() 在我们数组最前面 添加一个或者多个数组元素...green', 'blue', 'pink'] console.log(arr1.join('|')) 复制代码 concat() 链接两个或多个数组,不影响原数组 // 3、concat() 链接两个或多个数组

    2K20

    GDOUCTF 新生赛 wp

    具体来说,由于s1数组在栈上分配的位置是在buf数组的下方,因此可以通过输入比s1数组的大小大得多的字符串来溢出s1数组,从而覆盖buf和v5变量,使得程序执行到print_flag()函数。...Password:') p.sendline('A'*30) # Overflow s1 to overwrite buf and v5 variables print(p.recvall().decode()) 在接收到...; } else { console.log(`Your encoded string is ${encryptedString}`); } Alice用脚本向Bob发送了以下消息。...这是用JS写的。 Bob对JS一无所知。 你能帮忙看看留言吗? +}!q")hiim)#}-nvm)i-$#mvn#0mnbm)im#n+}!qnm8)i-$#mvnoc#0nz<$9inm!...135 225 --请你分析代码,逆向推出flag 一道lua题,先随机一个四位大小写的字符串MD5编码两次作为key,再将flag的ASCII每一位和key的ASCII对应位值相加,写个python脚本逆向一下即可

    37320

    Jenkins 远程启动nodejs失败,使用pm2守护Nodejs

    安装 npm install pm2 -g 启动 pm2 start app.js pm2 start app.js --name my-api #my-api为PM2进程名称 pm2 start app.js... -i 0 #根据CPU核数启动进程个数 pm2 start app.js --watch #实时监控app.js的方式启动,当app.js文件有变动时,pm2会自动reload 查看进程 pm2 list...在package.json里面,有定义启动命令。比如: "start:client": "cd ....下面的test.json是公司项目 {   "apps": [{     "name": "test",  //项目名称     "script": "test.sh",  //要执行的脚本     ...:json结构,apps是一个数组,每一个数组成员就是对应一个pm2中运行的应用 name:应用程序名称 cwd:应用程序所在的目录 script:应用程序的脚本路径 log_date_format:

    2.5K20

    蝉知 CMS5.6 反射型 XSS 审计复现过程分享

    1723 行处对使用array_values返回了一个带序号的数组,随后在foreach中遍历$params数组进行过滤合并请求的参数和默认参数到defaultParams数组,关键点来了,在 1929...相信做过 CTF 题目的小伙伴对这个函数应该不陌生,那就是extract函数,在变量覆盖漏洞中经常用到,该函数从数组中将变量导入到当前的符号表,使用数组键名作为变量名,使用数组键值作为变量值。 ?...紧接着在控制器类的mergeJS方法中将页面中带有标签的内容拼接合成为一个标签 ? ? 将带有恶意脚本的内容合成到了一起 ?...之后会调用mergeJS()取到 js 脚本合并到页面 ? 最后输出造成了 XSS 0x05 深思 为什么会对参数 base64 编码?导致过滤被绕过。...调用deny方法在 299 行对referer进行了编码拼接 ? 308 行调用createLink生成了一个链接 ? ? 最后调用js:locate生成了 js 跳转脚本 ?

    1.3K20

    JavaScript

    在同时期还有其他的网页语言,比如VBScript、JScript等等,后来都被JavaScript打败了,所以现在的浏览器中,只运行一种脚本语言就是JavaScript。...第一个JavaScript实例 引入JavaScript的3种方式 外链式 行内式 内部式 外链式 也就是和我们引入外部CSS文件一样,在head头部引入我们自定义JavaScript脚本: 在Python中,能存放数据的有列表,用[]表示,但是在JavaScript中,[]被当做为数组,所谓的数组看以看成是一个容器,用来存放东西的容器。... 这里在后面有个undefined,是因为我们在设置循环条件的时候设置成了小于等于数据的长度,但是数组的第一个元素是从0开始的,所以才会有undefined 数组的常用方法 concat...//2.concat():两个数组的合并 var newN = n1.concat(n2) //console.log(newN) //3.将数组转换成字符串

    2.2K41

    如何让小姐姐崇拜你的代码

    你可以使用三元运算符用一行代码编写整个语句,而不是在多行上编写 if-else。...2、从数组中删除重复项 在 JavaScript 中,Set 是一个集合,它允许你仅存储唯一值。这意味着删除任何重复的值。 因此,要从数组中删除重复项,你可以将其转换为集合,然后再转换回数组。...ZIPCode); // Doesn't exist - Returns undefined 5、在没有第三个变量的情况下交换两个变量 在 JavaScript 中,你可以使用解构从数组中拆分值。...在 JS 中将任何内容转换为布尔值。 例如,这里有一些例子: !!true // true !!2 // true !![] // true !!"...let newArray = nums1.concat(nums2); // SHORTHAND newArray = [...nums1, ...nums2]; 也可以使用此语法代替将值推送到数组

    1.3K30

    第60节:Java中的JavaScript技术

    它是一种基于对象和事件驱动的脚本语言,主要是应用于客户端上的.JavaScript它可以做到信息的动态交互,具有交互性,它不允许直接访问本地硬盘,具有安全性,JavaScript是一种跨平台性的一种语言...特点,我们学习的Java语言是面向对象的编程语言,而JavaScript是基于对象的语言.对于JavaScript来说,是弱类型的语言,而Java是强类型的.在JavaScript中只需要解释就可以执行... js” type=”text/javascript”> JavaScript语法 JS语法学习起来比较容易,有变量,语句,...0]; for(var x=1; x<arr.length; x++){ if(arr[x]>max){ max=arr[x]; } } return max; } 方法 描述 concat...方法 描述 big() 用大号字体显示字符串 blink() 显示闪动字符串 bold() 使用粗体显示字符串 charAt() 返回在指定位置的字符 concat() 连接字符串 indexof()

    54320

    TensorFlow.js实现体感格斗教程

    迁移学习 二元分类和N元分类 在浏览器中使用TensorFlow.js模型训练图片分类 简单讨论使用LSTM进行动作分类 我们将开发一种监督深度学习模型,利用笔记本摄像头获取的图像来分辨用户是在出拳、出腿或者没有任何动作...我们在文中将使用MobileNet神经网络(安装包地址见附录),它和VGG-16一样强大,但是体积更小,在浏览器中的载入时间更短。 在浏览器中运行模型 在这一部分,我们将训练一个二元分类模型。...首先,我们浏览器的游戏脚本MK.js中运行训练过的模型。...MK.js连接起来。...该模型返回一维张量,我们用dataSync将其转换为一个数组。 下一步,通过使用Array.from我们将类型化数组转换为JavaScript数组,数组中包含我们提取帧中三种姿势的概率。

    1.4K30

    React学习记录

    creat-react-app 2.创建项目,到想要创建的目录下 $ creat-react-app demo01 3.启动项目 $ npm start 注:webpack版本需要4.29.6 4.JSX的了解:js...JavaScript解析 5.示例组件 代码: import React,{Component,Fragment } from 'react' class App extends Component{ //js...constructor(props){ super(props) //调用父类的构造函数,固定写法 this.state = { inputValue: "sss", list:["头部按摩","精油推背...let list = this.state.list.concat(this.state.inputValue) console.log(list) this.setState({ // ...拓展运算符...关于以上组件相关知识点的整理: (1)其中用到es6的赋值结构和拓展预算符: 扩展运算符用三个点号表示,功能是把数组或类数组对象展开成一系列用逗号隔开的值 import React,{Component

    26710

    Java中的JavaScript技术

    它是一种基于对象和事件驱动的脚本语言,主要是应用于客户端上的.JavaScript它可以做到信息的动态交互,具有交互性,它不允许直接访问本地硬盘,具有安全性,JavaScript是一种跨平台性的一种语言...特点,我们学习的Java语言是面向对象的编程语言,而JavaScript是基于对象的语言.对于JavaScript来说,是弱类型的语言,而Java是强类型的.在JavaScript中只需要解释就可以执行... js” type=”text/javascript”> JavaScript语法 JS语法学习起来比较容易,有变量,语句,函数...0]; for(var x=1; x<arr.length; x++){  if(arr[x]>max){   max=arr[x];  } }  return max; } 方法 描述 concat...方法 描述 big() 用大号字体显示字符串 blink() 显示闪动字符串 bold() 使用粗体显示字符串 charAt() 返回在指定位置的字符 concat() 连接字符串 indexof()

    48020

    前端面试经常被问的题目,自己总结了一下

    造成变量声明提升的本质原因是 js 引擎在代码执行前有一个解析的过程,创建了执行上下文,初始化了一些代码执行时需要用到的对象。...首先要知道,JS在拿到一个变量或者一个函数的时候,会有两步操作,即解析和执行。在解析阶段,JS会检查语法,并对函数进行预编译。...主要有以下两个原因:提高性能容错性更好(1)提高性能 在JS代码执行之前,会进行语法检查和预编译,并且这一操作只进行一次。...代码压缩也是我们必做的性能优化方案,当然我们不止可以压缩 JS 代码,还可以压缩 HTML、CSS 代码,并且在压缩 JS 代码的过程中,我们还可以通过配置实现比如删除 console.log 这类代码的功能...只能扁平化一层function flat(arr) { return [].concat(...arr);}全部扁平化:遍历原数组,若arr中含有数组则使用一次扩展运算符,直至没有为止。

    39920

    前端性能优化之 JavaScript

    /javascript" src="file2.js" async> 动态脚本 无论在何处启动下载,文件的下载和运行都不会阻塞其他页面处理过程。...,访问速度越慢 将对象成员、数组项、域外变量存入局部变量能提高 js 代码的性能 三、dom 编程 对 DOM 操作代价昂贵,在富网页应用中通常是一个性能瓶颈。...js 中的应用,栈溢出导致其他代码不能正常执行 如果遇到栈溢出,将方法修改为制表法,可以避免重复工作 五、字符串和正则表达式 String And Regular Expression 在 JS 中,正则是必不可少的东西...String.prototype.concat 原生字符串连接函数接受任意数目的参数,并将每一个参数都追加在调用函数的字符串上 var str = str.concat(s1); var str = str.concat...混合解决方案在处理长字符串时特别快,其代价是代码稍长,在某些浏览器上处理尾部长空格时存在弱点 总结 使用简单的+和+=取代数组联合,可避免(产生)不必要的中间字符串 当连接数量巨大或尺寸巨大的字符串时,

    1.8K30
    领券