![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js
旭氏美术馆
bvb v
展开
-
js并发限制
【代码】js并发限制。原创 2024-05-20 21:27:26 · 110 阅读 · 0 评论 -
@media媒体查询,看着一篇就够了
综合这两个条件,这个媒体查询选择的是视口宽度在 960 像素到 1024 像素之间的范围,包含 960 和 1024 像素。max-width: 1024px: 表示视口宽度最多为 1024 像素(即小于或等于 1024 像素)。min-width: 960px: 表示视口宽度至少为 960 像素(即大于或等于 960 像素)。当设备的视口宽度在 960 像素到 1024 像素之间时,页面的背景颜色将会变为浅蓝色。@media 是媒体查询属性,利用这个属性,可以做很多适配工作。原创 2024-05-17 14:38:22 · 189 阅读 · 0 评论 -
abc全排列
【代码】abc全排列。原创 2024-05-17 12:06:07 · 78 阅读 · 0 评论 -
js实现每间隔1秒输出
利用 reduce。原创 2024-04-22 16:22:16 · 95 阅读 · 0 评论 -
js的apply、call、bind
javascript的apply、call、bind实现。原创 2024-03-28 14:50:44 · 181 阅读 · 0 评论 -
基本设计模式
javascrip几种基本的设计模式。原创 2024-03-04 18:01:32 · 540 阅读 · 0 评论 -
排序算法汇总
算法原创 2022-06-07 17:34:10 · 328 阅读 · 1 评论 -
解构运算符(...)的几个主要使用场景
函数参数function fn(...numb){ return reduce(pre,cur)=>{ return pre+cur; }}const arr=[1,2,3,4,5,6]fn(arr)深拷贝对象const ob={name:'tom'}const ob_={...ob}对象属性合并const ob={name:'tom'}const ob_={...ob,age:12}//pb_={name:'tom',age:'12'}...原创 2021-04-26 10:43:38 · 434 阅读 · 0 评论 -
post数组
遇到post数组的时候,相同key自动转为数组,其实之前遇到并解决过,但是后来遇到又有点不确信了,原创 2020-12-31 15:16:52 · 437 阅读 · 0 评论 -
Promise封装原生ajax
function fetch(url){ return new Promise((res,rej)=>{ let xhr=new XMLHttpRequest(); xhr.open('GET',url); xhr.onreadystatechange=function(){ if(xhr.readyState==4&&xhr.status==200){ res(xhr.re原创 2020-10-15 10:25:22 · 214 阅读 · 0 评论 -
RGB与16进制颜色值的相互转换
提纲javaScript语言中通过parseInt()和toString()进行数字与字符串之间的转换,这种相互间的转换在许多方面都有应用场景。字符串转数字:parseInt(str, rad);数字转字符串: toString(rad);注意一般通常用paseInt()的时候不写第二个参数,即不指定进制转换的基数时,有可能不会转换成功,结果为NaN, 指定第二个参数,便于parseInt函数识别字符串代表的数据类型,这个方法可用于颜色值从16进制转为十进制rgb(r,g,b)值。同样一般原创 2020-09-28 11:29:37 · 1931 阅读 · 0 评论 -
Promise 创建和执行中
原创 2020-09-21 00:40:14 · 163 阅读 · 0 评论 -
腾讯笔试题:前端table点击触发单元格所在行列样式变化
实现效果就是点击表格,触发所在行列样式变化,如图所示“html<script src="https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js"></script><!DOCTYPE html><html><head><meta charset="utf-8"><title>文档标题</title></head><bod原创 2020-08-23 22:38:37 · 305 阅读 · 0 评论 -
js中的Math.round(),ceil(),floor()
ceil:向上取舍-floor:向下取舍-round:实际上,Math.round()方法准确说是“四舍六入”,对0.5要进行判断对待。Math.round()的原理是对传入的参数+0.5之后,再向下取整得到的数就是返回的结果。这里的向下取整是说取比它小的第一个整数或者和它相等的整数。因此Math.round(-1.5)的结果是-1.5 + 0.5 再向下取整,即-1.0取整,结...原创 2019-12-06 20:48:25 · 470 阅读 · 0 评论 -
js中的undefined,null
==可以从Javascript规范中找到答案:规范中提到, 要比较相等性之前,不能将 null 和 undefined 转换成其他任何值,并且规定null 和 undefined 是相等的。null 和 undefined都代表着无效的值。undefined==null //true===类型不一致undefined=== null //false...原创 2019-12-05 16:59:40 · 155 阅读 · 0 评论 -
获取上传表单input的文件
input上传文件获取文件流对象:document.getElementById('fileToUpload').files[0]原创 2019-11-28 17:19:14 · 396 阅读 · 0 评论 -
数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组
据说这是一道美团面试撸代码题目,我花一会功夫实现了,还可以var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];// 编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组function fx(arr){ var a=[] f(...原创 2019-11-22 22:34:36 · 391 阅读 · 0 评论 -
LRU算法的JavaScript实现
LRU就是Least Recently Used,即最近最少使用,是一种常用的页面置换算法,将最近长时间未使用的页面淘汰,其实也很简单,就是要将不受欢迎的页面及时淘汰,不让它占着茅坑不拉shit,浪费资源。其核心就是利用栈,进行操作,其中主要有两项操作,get和putgetget时,若栈中有值则将该值的key提到栈顶,没有时则返回nullput栈未满时,若栈中有要put的key,则...原创 2019-11-20 11:00:40 · 1518 阅读 · 2 评论 -
js中的apply.call的this没有明确指向
没有明确指向就是window原创 2019-11-19 20:35:12 · 181 阅读 · 0 评论 -
简单理解javaScript中的传递参数
js中的参数传递都是值传递形式的。首先明确的是参数主要分为两类:基本类型和值类型基本类型基本类型的值传递就是值的拷贝,如在函数参数为基本类型是,参数传递就是拷贝一份该数据新的值,在函数中新值的变化不会影响外面的值,所以在基本类型作为函数参数的时候,值不会受函数操作影响。如:引用类型引用类型其实就是指向内存中某个对象的指针,它的值就是对象在内存空间中的地址。在引用类型参数传递时,其实...原创 2019-11-07 17:14:48 · 231 阅读 · 0 评论 -
利用jQuery实现轮播图
序:我的上篇博客实现了用纯原生js实现轮播图戳这里,这篇再用jquery实现一下。原理:一行多个,水平移动,截取显示,通过left控制移动效果:其实按钮的样式还可以进一步美化一下的,我这里只实现一下效果代码:可以去这里看完整的代码:git地址心情好的话给我的star吧这里只贴一下js的部分关键代码://向右 $("#right").click(function ()...原创 2019-05-23 17:11:20 · 386 阅读 · 0 评论 -
利用原生JS实现轮播图
写在前面:利用原生js实现轮播图,没有用任何框架之前有人说,来前端面试前,先实现一个js写轮播图吧最近刷了一套百度笔试题全球,其中就有这样一道编程题说起来很简单,但自己动手实现一下还是很有必要的原理:一行多个内容,通过移动这一行,只显示某一个部分效果:代码:html<!DOCTYPE html><html> <head> &l...原创 2019-05-22 20:33:44 · 421 阅读 · 0 评论 -
JavaScript的EventLoop即事件循环
理解js的EventLoop原理有利于理解js的执行机制对于初学js的人而言,可能会有这样一个浅显的认识:js的执行,从宏观上来看,就是先执行同步任务,遇到异步任务,先挂起,等到同步任务都执行完了,再去执行异步任务。其实,深入刨析这个过程,其本质就是js的事件循环(EventLoop)js是单线程的,但为了避免线程阻塞问题即后续任务要等待前面的任务执行完以后再执行,所以程序设计者利用了异...原创 2019-05-04 22:21:19 · 209 阅读 · 1 评论 -
Vuejs中类似于mounted的函数为什么叫钩子函数?
在学习Vue,总会叫像mounted等这种函数为钩子函数,我一直不懂,但我也认为他之所以有这样的名字必然有一定的理由。然后,某一天,在看《深入浅出Nodejs》这本书的时候,看到一句话,我觉得可能就是所谓钩子函数的真正含义所在吧,在这里贴一下利用钩子导出内部数据或状态给外部调用者看,可以使编程者不用关注组件是如何启动和执行的,只需要关注需要的事件点上即可。是不是十分有道理呢...原创 2019-04-23 21:00:07 · 1617 阅读 · 3 评论 -
javascript 先序遍历和中序遍历生成二叉树
剑指offer上的一道算法题,用js实现:function TreeNode(x) { //构建节点 this.val = x; this.left = null; this.right = null;}function reConstructBinaryTree(pre, vin){ //var a='...原创 2019-04-08 11:38:31 · 532 阅读 · 0 评论 -
JavaScript用两个栈来实现一个队列,完成队列的Push和Pop操作
var left=[],right=[]function push(node){ left.push(node);}function pop(){ var t=[] //如果在left栈push到right栈之前,right栈中有元素,先要将right中元素倒出来放到t中, //把left栈中元素全部倒入空的right栈中后,再把t中的元素倒回r...原创 2019-04-10 17:17:59 · 784 阅读 · 0 评论 -
简单理解javascript作用域链
套娃思维:简单理解js的作用域链(scope chain),就好比一个套娃,最外面的总是当前执行的函数,第二层套娃是最外面(当前执行环境)的外部环境,第三层套娃又是第二层套娃(执行环境)的外部环境,依次类推,最里面的一般是全局执行环境,js在搜索变量时总是从套娃的最外面(当前执行环境)搜索到最里面(全局执行环境)。当然,既然是链,其中每一个单元,都是一个作用域或者成为执行环境,js背后对每一...原创 2019-03-19 22:04:42 · 409 阅读 · 0 评论 -
vue/cli3.0脚手架部署到nginx时页面空白问题解决办法
首先,明确一下问题vue/cli3.0部署到nginx出现页面白屏,不能正常显示网页内容,利用F12,经过初步判断,是路径设置问题。然后,对比一下2.0与3.0.先对比一下两个版本脚手架的目录结构2.0目录结构3.0目录结构可见,vue-cli3.0与2.0有一个不同之处是3.0脚手架中没有build和config文件,在往nginx中部署2.0时,我们可以通过修改build和...原创 2019-01-21 21:00:27 · 10116 阅读 · 1 评论 -
js的所有参数传递都是值传递
核心一定记住这句话js的所有参数传递都是值传递对比验证对于基本类型而言,值传递毋庸置疑这里用一个函数改变Number的值,显然是值传递:对于引用类型而言,其实也是值传递,而这个值就是对象的存储地址这里用一个函数改变Array的值:这里的函数参数是我声明数组对象的地址的一份拷贝,所以在函数内试图改变数组,确实产生了作用同样,用一个对象做一个验证:这里通过函数对一...原创 2019-06-02 22:09:55 · 387 阅读 · 0 评论 -
剑指Offer算法题目答案
所有题目都是用JavaScript进行的解答,且附有自己的解题思路所有代码都在我的git如果有帮助的话请给个小星星:)原创 2019-06-03 00:02:31 · 237 阅读 · 0 评论 -
web安全性之XSS,CSRF,SQL注入
web安全性主要侧重于对web服务器的攻击,这种攻击有 常见的sql注入,跨站脚本攻击(xss),跨站请求伪造(csrf)sql注入基本概念:其本质就是,项目中把用户数据与代码进行了拼接,形成了可执行的sql语句攻击者把sql命令插入到web表单的输入或者页面请求的查询字符串(url),欺骗服务器执行恶意的sql命令攻击者在web页面预先定义好的sql语句结尾加上额外的sql语句元素...原创 2019-06-19 16:47:20 · 1267 阅读 · 1 评论 -
原生应用与混合应用
原生应用就是特别为某种操作系统所开发的,在各自设备上运行的应用,原生应用拥有访问手机全部功能的所有权限;速度,性能都比混合应用要更快更高,用户体验更好,可以线下使用,支持大量图形和动画。但是原生应用的开发成本很高,并且是在某个平台的专属设备上使用,支持设备有限,更新需要重新下载web应用本质上是为移动浏览器设计的基于Web的应用,他们是用普通Web开发语言开发的,可以在各种智能手机浏览器上运行,...原创 2019-07-21 22:19:28 · 398 阅读 · 0 评论 -
不同方面的vue双向绑定开发实践
之前写vue的时候,我用双向绑定就是把data中的数据当做容器,不停的变换data里的某个数据今天晚上,通过别人写的vue,他的双向绑定是通过给js对象赋新的属性,也不失为一种双向绑定的思路。...原创 2019-07-17 23:45:52 · 149 阅读 · 0 评论 -
js深拷贝和浅拷贝
浅拷贝相同空间多个引用指向同一对象实例,改变一个引用会使得另一个引用随之发生变化let a=[1,2,3],b=[]b.push(a) //b:[[1,2,3]]a.pop() //b: [[1,2]]上述代码在a被push进b后,改变a,b也会发生变化深拷贝新的空间在堆中重新分配内存,把原对象所有属性都进行新建拷贝,拷贝后的对象与原对象完全隔离,各自的改变互不...原创 2019-06-11 23:49:02 · 118 阅读 · 0 评论 -
创建带有id属性的DOM元素的副作用
创建的id会成为全局变量的属性,所以会有使得全局变量带有重复属性的风险。原创 2019-07-19 15:52:25 · 2015 阅读 · 1 评论 -
JavaScript的Array的forEach(),map()
forEach():按索引值升序顺序,遍历每一项.不直接改变原数组,但如果在其callback中操作数组(回调中的第三个参数),也会改变数组。.总是会返回一个undefined。.不能break和return,除非是利用抛出异常的方式跳出循环。.其callback回调函数通常接收3个参数:遍历时新添加的项不会被遍历到,若原有项发生改变,便利的是在遍历它时当下的值,若被删除则不会被遍历...原创 2019-06-11 16:51:32 · 506 阅读 · 0 评论 -
async/await
概念async和await是es7出现的一个新概念,主要与promise配合使用基本特征async和await总是一起出现,await出现在async函数的内部,await不能单独在函数外部出现async 标注的函数会返回Promise对象,即使函数本身没有返回一个promise对象,js也会自动将返回值包装成promise的resolved值await会使得执行过程进行等待,一般常用于...原创 2019-06-04 23:42:43 · 170 阅读 · 0 评论 -
JSONP
概念:JSONP=JSON with PaddingJSON是一种数据格式,JSONP是一种数据获取方式JSONP原理利用script的src可以跨域的漏洞在本地动态生成script标签,设计一个接受数据的回调函数,src中定义服务端地址及回调函数的名字如客户端拼接script和设计回调函数的代码<!DOCTYPE html PUBLIC "-//W3C//DTD ...原创 2019-06-04 17:03:57 · 122 阅读 · 0 评论 -
通过XSS实现CSRF
最近在学习xss攻击,但没有实际的操作,不会有深入的理解,所以我在seg的一个页面上,通过留言一段js脚本,实现xss,这里实际在提交评论后会打印我的cookie,当然只拿到我自己的cookie是不涉及什么安全问题的,但如果能拿到别人的cookie就可以进行冒充别人的登录操作了,也就是通过XSS实现了CSRF...原创 2019-06-19 17:07:23 · 500 阅读 · 0 评论 -
利用javascript截取url中的参数
需求:获取url=www.xxx.com?user=admin&amp;amp;pwd=123的参数。代码:var url='www.xxx.com?user=admin&amp;amp;pwd=123'var urlsplit=url.split('?')var par=urlsplit[1].split('&amp;amp;')var obj={}for(i=0;i&amp;lt;par.length;i++)...原创 2018-12-04 11:47:28 · 442 阅读 · 0 评论