JavaScript
文章平均质量分 76
JavaScript专栏,主要收录JavaScript相关的内容
前端御书房
保持对编程的热爱
展开
-
JavaScript逆向技术
而JavaScript逆向的目的,就是通过对这些经过处理的代码进行反混淆、解密或解压缩,还原出原始的代码逻辑,从而理解其工作原理或寻找潜在的安全漏洞。然而,JavaScript逆向技术仍在不断发展和完善中,未来的研究方向包括更高效的反混淆和解密算法、更精确的动态执行和调试技术等。同时,我们也应该意识到,JavaScript逆向并非万能的。此时,我们需要借助内存分析工具(如浏览器的Memory tab),对JavaScript对象的内存占用、引用关系等进行深入分析,以提取出隐藏在内存中的关键数据。原创 2024-05-07 18:22:19 · 1411 阅读 · 2 评论 -
前端:你见过哪些令你膛目结舌的代码技巧?
在JavaScript的世界里,有着许多令人膛目结舌的代码技巧。这些技巧可以使你的代码更加简洁、高效,甚至在某些情况下,能够解决一些看似无解的问题。下面,我们就来聊聊那些让你目瞪口呆的JavaScript代码技巧。原创 2023-12-19 17:04:31 · 479 阅读 · 0 评论 -
浏览器API:webStorage
webStorage提供了一种机制,可以让浏览器提供一种比cookie更直观的key、value存储方式。WebStorage的目的是解决通过客户端存储不需要频繁发送回服务器的数据时使用cookie的问题。WebStorage 提供了两个对象localStorage和sessionStorage,这两种浏览器存储API提供了在浏览器中不受页面刷新影响而存储数据的两种方式。原创 2023-02-23 19:55:12 · 393 阅读 · 2 评论 -
fetch发送网络请求
fetch发送get请求JavaScript 可以将网络请求发送到服务器,并在需要时加载新信息。对于来自 JavaScript 的网络请求,有一个总称术语 “AJAX”(Asynchronous JavaScript And XML 的简称)。有很多方式可以向服务器发送网络请求,并从服务器获取信息。fetch是其中之一,旧版本的浏览器不支持它(可以 polyfill),但是它在现代浏览器中的支持情况很好。我们来看一看它的基本语法let url="test.html";let te = fetch(u原创 2020-12-12 15:25:40 · 2583 阅读 · 0 评论 -
原生jsAJAX简介
什么是AJAXAJAX = Asynchronous JavaScript and XML(异步 JavaScript 和 XML)。通过在后台与服务器交换少量数据, 允许网页进行异步更新。可以使网页在不重新加载整个网页的情况下,对网页某些部分进行更新。AJAX发送请求的步骤创建一个请求对象var xhr = new XMLHttpRequest();console.log(xhr);由此ajax请求对象已经创建完成,我们可以看一下打印结果由此可见,该对象中有很多属性和方法,接下来我原创 2020-11-15 14:00:10 · 311 阅读 · 0 评论 -
ajax跨域简介
什么是跨域跨域:两个网站之间协议头、域名、端口号任意一个不同就是跨域。同源:两个网站之间协议头、域名、端口号都一致就是同源。有时,我们使用ajax访问一个api,不能访问成功,并且报错,如下。此时,我们已经是跨域访问了,但是我们仍要访问,那么怎么解决呢。跨域解决方案——jsonp常见的跨域解决方案是jsonp,该方法比较简单,不涉及太多后端的知识。首先我们了解一下jsonp解决跨域的原理jsonp原理jsonp原理是使用不受跨域限制的标签发起请求,然后再将响应体转换为js能够识别的内容。原创 2020-11-17 18:45:23 · 546 阅读 · 0 评论 -
JavaScript:生成器函数
在介绍生成器函数之前先了解一下ES6的一个关键字,名为yieldyield关键字,可以让代码在其出现的地方暂停执行,它只能在生成器函数内部使用。原创 2022-11-20 18:26:42 · 2144 阅读 · 0 评论 -
回调地狱的解决方案
什么是回调地狱回调地狱就是在回调函数中再嵌套回调函数的一种现象。如图以上只是演示只写了三层,此次也只是为了讲解回调地狱的解决方案,才做此演示,在正常情况下,应该避免回调地狱的出现。由于在回调函数中嵌套函数就导致代码不易维护,可读性等问题。下面我们就来看一下其解决方案。解决方案Promise什么是PromisePromise是异步编程的一种解决方案,Promise是一个对象,可以获取异步操作的消息.。Promise的作用避免回调地狱的问题它可以解决回调地狱的问题,这也是我们介绍它的原因原创 2020-12-05 15:18:50 · 1060 阅读 · 1 评论 -
ES6之解构赋值简介
变量的解构赋值数组的解构赋值ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。var [a, b, c] = [1, 2, 3];本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。如果解构不成功,变量的值就等于undefined。var [foo] = [];var [bar, foo] = [1];不完全解构,即等号左边的模式,只匹配一部分的等号右边的数组。这种情况下,解构依然可以成功。le原创 2020-11-29 15:45:42 · 112 阅读 · 0 评论 -
箭头函数与普通函数的区别
箭头函数是ES6中一种新的函数的表达式,其参数与函数体之间用箭头连接,因此成为箭头函数。它也是匿名函数的一种。其基本用法与匿名函数一致,只是略有不同,接下来就讲讲这不同之处。其语法为。原创 2020-12-19 14:01:35 · 279 阅读 · 1 评论 -
ES6新增变量声明与var的区别
ECMAScript6let和const命令let用于声明变量,它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。{var a = 10;let b = 1;}console.log(a);// 10console.log(b);//b is not definedfor循环的计数器,就很合适使用let命令for(let i=0;i<10;i++){ console.log(i);}console.log(i);// i is not defi原创 2020-11-29 15:39:04 · 135 阅读 · 0 评论 -
async和await
asyncasync是es6中的一个关键字,它的作用是能将一个函数变成异步函数。其语法为async function fn(){}如此,fn函数就成为异步函数,我们可以用代码验证一下。 async function fn() { return 1; } console.log(fn());我们可以看到该函数的返回结果是一个promise对象,我们可以通过then方法获取其值。如果是普通函数返回的就是1,我们可以直接获取到值。根据上面的结果,我们也可以认为原创 2020-12-19 11:20:47 · 243 阅读 · 1 评论 -
JavaScript正则表达式
JavaScript语言中的正则表达式借鉴于Perl语言。正则表达式是一种简单语言的语法规范,它以方法的形式被用于对字符串中的信息进行查找、替换和提取操作。在JavaScript中正则表达式相较于等小的字符串方法有性能优势。原创 2022-10-28 17:50:21 · 236 阅读 · 0 评论 -
DNS域名解析
客户端首先会访问最近的一台DNS服务器,如果最近的DNS服务器没有保存当前域名的信息,就会从顶层向下找,由于最近的DNS服务器中保存了根域DNS服务器的信息,因此它会将来自客户端的查询消息转发给根域DNS服务器。com域服务器接收请求,根据信息进行匹配,如果也没有,com域服务器会返回它下面的所保管次级域的DNS服务器的IP地址,DNS服务器接收到响应信息后,向下一级域名服务器发送查询请求。由于互联网中的域名数量庞大,所以把域名记录信息保存在多台DNS服务器中,保存形式以域名分层次的结构进行保存。原创 2022-10-20 21:53:33 · 324 阅读 · 0 评论 -
JavaScript:模拟拍照
JavaScript:模拟拍照,持续更新中……原创 2022-10-20 18:26:56 · 1039 阅读 · 0 评论 -
JavaScript:canvas图像操作
JavaScript:canvas图像操作,持续更新选中……原创 2022-10-19 20:08:11 · 6816 阅读 · 1 评论 -
JavaScript:二维码生成与解析
JavaScript:二维码的生成与解析原创 2022-10-17 20:50:30 · 6749 阅读 · 5 评论 -
面试题:手写Promise
实现Promise,持续更新中……原创 2022-07-23 10:00:12 · 305 阅读 · 0 评论 -
canvas:绘制简单春联demo
canvas demo,制作简易春联,持续更新中……原创 2022-01-27 13:57:24 · 920 阅读 · 0 评论 -
canvas:给图片添加水印demo
canvas demo,给图片添加水印,持续更新中……原创 2022-02-03 11:53:12 · 1028 阅读 · 0 评论 -
JavaScript:代码风格
JavaScript:代码风格,持续更新中……原创 2022-10-14 20:43:23 · 696 阅读 · 0 评论 -
JavaScript继承
JavaScript继承,持续更新中原创 2022-10-12 17:15:56 · 287 阅读 · 0 评论 -
JavaScript代码执行过程
学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢?当前编程语言主要分为编译型语言和解释性语言。编译型语言的特点是在代码运行前编译器直接把代码转化为机器码。解释型语言也需要将代码转换成机器码,但是和编译型的区别在于运行时需要转换。原创 2022-09-28 18:10:34 · 328 阅读 · 0 评论 -
JavaScript语句
JavaScript语句,持续更新中……原创 2022-09-18 16:18:14 · 155 阅读 · 0 评论 -
JavaScript事件循环
JavaScript事件循环,持续更新中……原创 2022-09-21 10:00:00 · 341 阅读 · 0 评论 -
JavaScript垃圾回收机制
在JavaScript中,当我们创建变量时,系统会自动给对象分配对应的内存。基本类型的值在内存中会占据固定的内存空间,它们的值都保存在栈空间中,直接可以通过值来访问这些。而引用类型的值大小不固定,在栈内存中存放地址指向堆内存中的对象,是通过引用来访问的。栈内存中的基本类型,可以通过操作系统直接处理,而堆内存中的引用类型,正是由于可以经常变化,大小不固定因此需要JavaScript引擎通过垃圾回收机制来处理。原创 2022-09-19 10:00:00 · 268 阅读 · 0 评论 -
前端面试题|原理JavaScript数组的push、pop、map、reduce实现
前端面试题|原理,手写JavaScript数组API,push、pop、map、reduce实现原创 2022-09-17 10:00:00 · 358 阅读 · 0 评论 -
JavaScript数组扁平化的实现
JavaScript数组扁平化的实现,持续更新中……原创 2022-09-16 10:00:00 · 136 阅读 · 0 评论 -
前端面试题|原理JavaScript:new、call、apply、bind的实现
前端面试题|原理JavaScript,new、call、apply、bind实现,持续更新中……原创 2022-09-15 10:00:00 · 115 阅读 · 0 评论 -
前端面试题:JavaScript深浅拷贝实现
前端面试题:JavaScript深浅拷贝实现,持续更新中……原创 2022-09-14 20:20:46 · 659 阅读 · 0 评论 -
javascript数据类型
数据值是一门编程语言进行生产的材料,JS中包含的值有以下这些类型。原创 2022-08-12 16:15:40 · 223 阅读 · 1 评论 -
JavaScript面向对象和原型
创建的每个函数都有一个prototype属性,该属性是一个对象,包含可以由特定类型的所有实例共享的属性和方法。不过,通过这种方式创建对象,对象中没有私有变量,如果想让对象拥有私有变量,可以把创建对象的函数封装成一个函数。constructor 构造属性,可以获取构造函数本身,作用是被原型指针定位,然后得到构造函数本身。必须 new 构造函数名(),new Box(),而这个 Box 第一个字母也是大写的。如果是实例方法,不同的实例化,它们的方法地址是不一样的,原型方法,方法的地址是共享的。原创 2022-08-12 16:14:55 · 115 阅读 · 1 评论 -
JavaScript函数高级应用
javascript函数高级应用,持续更新中……原创 2022-07-31 10:30:00 · 118 阅读 · 0 评论 -
canvas动态绘制图片的方法
canvas动态绘制图片的放法,持续更新中……原创 2020-10-05 13:16:39 · 2903 阅读 · 4 评论 -
百度地图API简介
百度地图API使用原创 2020-10-04 19:34:38 · 6013 阅读 · 0 评论 -
Canvas与web数据可视化
什么是CanvasCanvas是HTML5新增的一个元素,该元素用于2d图像的绘制,Canvas元素本身并没有绘图的能力,它需要结合javascript使用官方提供的API进行绘制图形。Canvas用在哪些地方实时的走势图统计图表验证在线画图板HTML5游戏什么是数据可视化从狭义上讲就是将数据通过图表的方式展示出来,供相关人员分析。web数据可视化就是在网页中将数据用图表的方式展示出来。有什么作用提高信息传播效率相对于文字,人们对图片更加敏感,因此更容易捕获到信息,同时用图原创 2020-09-26 10:44:48 · 1185 阅读 · 0 评论 -
防抖和节流简介
什么是防抖和节流防抖当事件被频繁触发时,不想让其频繁执行事件处理函数的一种解决方案。该方案通过设定一个周期延迟执行动作,如果周期内又被重新触发,则重新设定周期,直到周期结束,执行动作。节流节流的方案是通过设定一个周期,在周期内只执行一次,如果在周期内重新触发事件,则不执行。一个周期结束后,开始新的周期。为什么要防抖和节流频繁触发事件会占用较多浏览器资源造成浏览器卡顿响应速度跟不上触发速度,导致页面加载缓慢防抖实现方式节流实现方式......原创 2020-09-19 10:27:18 · 251 阅读 · 0 评论 -
动态添加DOM元素的方式
动态添加DOM元素的方式,持续更新中……原创 2020-09-12 16:08:17 · 5001 阅读 · 1 评论 -
去重三种方法
数组去重三种方法问题情境去除数组中重复的元素,输出不重复的元素数组思路方向将数组中重复的元素删除将数组中不重复的元素取出利用其它 JavaScript 特性和 API 直接去重这一思路中有些 API 涉及ES6中的某些知识暂不提及方法一利用数组对数组中的元素进行比较取出不重复元素去重原理创建一个新数组存放元素,遍历原数组中的元素,如果原数组中的某个元素没有与新数组中的元素重复就把该元素放进新数组中流程先定义一个新的数组,用来存储不重复的元素利用循环将原数组中的每个元素原创 2020-08-29 14:17:34 · 6354 阅读 · 1 评论 -
判断一个对象是否为数组的4种方法
问题描述在js中判断数据类型通常使用typeof,但是typeof在判断数组和对象时的结果都是object。console.log(typeof []);console.log(typeof {});那么,怎么才能区分对象和数组呢?方法判断原型var obj = {};var arr = []; console.log(arr); console.log(obj);由上图可知,数组和对象的原型对象不一样,由此可以通过判断原型来判断一个对象是否为数组var obj = {}原创 2020-08-29 12:06:13 · 7720 阅读 · 0 评论