![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
ikun不解释
前端开发
展开
-
Object.defineProperty()
Object.defineProperty()语法:Object.defineProperty(obj, prop, descriptor)obj:要定义属性的对象prop:要定义或修改的属性的名称,即为对象的 keydescriptor:要定义或者修改的属性描述符返回值:此对象 obj例子:const obj = {};Object.defineProperty(obj, 'name', { value: 'z'});obj.name; // z用途:Object.def原创 2022-01-19 11:44:50 · 299 阅读 · 0 评论 -
javascript中的 call、apply、bind
三者是 Function 对象 原型上的三个方法,主要作用是改变函数中 this 的指向。Function.prototype.call()用法:function.call (thisArg, arg1, arg2, ...)返回值:使用调用者提供的 this 值(也就是 thisArg)和参数 调用该函数的返回值,如果没有返回值,返回 undefined例子// 简单例子var a = { user: '测试', fn: function(a, b){ console.log(t.原创 2022-01-17 15:42:49 · 455 阅读 · 0 评论 -
管理或升级本地的node版本
管理node 版本采用 gnvm 升级或安装其他版本的 node下载 gnvm.exe,放在 node.js 文件夹下面设置 gnvm 的源# gnvm.exe 内建了 DEFAULT and TAOBAO 两个库。gnvm config registry TAOBAO安装 nodegnvm install latest 1.0.0-x86 1.0.0-x64 5.0.0更新 node# 更新本地的 Node.js latest 版本gnvm update la原创 2021-12-15 16:14:08 · 1568 阅读 · 0 评论 -
前端怎么制作灰色主题页面
前端页面怎么制作灰色主题头部引入csshtml { filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -o-filter: grayscale(100%); filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org原创 2021-12-13 10:46:45 · 417 阅读 · 0 评论 -
fetch的基础理解
fetchfetch 是 WorkOrGlobalScope 这个 mixin 中的一个方法,用于获取一个网络进程,通常为请求地址;它返回一个 promise 对象,当网络正常或未被请求拦截的时候,会 resolve 一个 response 对象,否则就 reject 结束语法Promise<Response> fetch(req[, obj]);参数req:获取的资源urlRequest对象obj:请求设置,可选参考写法读取数据fetch("htt原创 2021-12-10 15:42:40 · 545 阅读 · 0 评论 -
前端根据url地址生成二维码
插件:QRCode地址:http://davidshimjs.github.io/qrcodejs/<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">.原创 2021-11-11 16:38:24 · 1151 阅读 · 0 评论 -
editplus破解源码
function generate_editplus_regcode(username){ var list = [0,49345,49537,320,49921,960,640,49729,50689,1728,1920,51009,1280,50625,50305,1088,52225,3264,3456,52545,3840,53185,52865,3648,2560,51905,52097,2880,51457,2496,2176,51265,55297,6336,6528,55617,6912原创 2021-10-27 17:14:40 · 569 阅读 · 2 评论 -
前端通过文件流下载文件(以xlsx为例)
根据文件流下载文件interface DownFileParams { data: Record[]; requestUrl: string; fileName: string}export default async function downLoadFile({data, requestUrl, fileName}: DownFileParams): Promise<boolean>{ const blobData = await request(`原创 2021-09-03 15:10:11 · 308 阅读 · 0 评论 -
前端防抖和节流
节流和防抖防抖防抖, 当事件被触发时, 设定一个周期延迟执行动作, 若期间又被触发,则重新设定时间周期, 直到周期结束,执行动作. 这是 debounce的基本思想,在后期又扩展了前缘debounce,即执行动作在前,然后设定周期,周期内有事件被触发, 不执行动作, 且周期重新设定。debounce的特点是当事件快速连续不断触发时,动作只会执行一次. 延迟 debounce , 动作是在周期结束后执行, 前缘 debounce, 动作是在周期开始前执行. 但当触发间断, 且间隔时间大于设定原创 2021-07-01 10:08:46 · 134 阅读 · 0 评论 -
js事件循环机制
JavaScript 事件循环机制所有的任务队列可以分为同步任务和异步任务。同步任务会进入主线程中执行;异步任务回通过任务队列(Event Queue)的机制进行协调执行同步和异步分别进入不同的执行环境。同步的进入主线程,即主行栈,异步的进入到 Event Queue。主线程内的执行完毕后,会去Event Queue 读取对应的任务,推入主线程执行。上述过程的不断重复就是 Event Loop(事件循环)。在事件循环中,每进行一次循环操作称为 tick,其关键步骤可以总结如下在此次 t原创 2021-06-17 16:57:54 · 1111 阅读 · 1 评论 -
数组常用操作
/** 已知数组 arr = [1, 2, [3, 4, 5, [2, 3, 6, 7, 8]]]* 返回一个扁平化数组 newArr*/let arr = [1, 2, [3, 4, 5, [6, 7, 8]]];while(arr.some(item=>Array.isArray(item))){ arr = [].cancat(...arr)}/** * 数组去重*/let newArr = [...new Set(arr)];/** * 数组排序*原创 2021-06-11 11:20:08 · 62 阅读 · 1 评论 -
Promise的一些简单理解
Promise的理解含义Promise 是异步编程的一种解决方案,ES6将其写入标准,Promise简单的来说是一个容易,里面包含着未来才会结束的事件(通常是一个异步操作的结果)Promise 有两个特点:一是对象的状态不受外界的影响。Promise对象代表一个异步操作,有三种状态: pending、fulfilled、rejected,只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态;二是状态一旦改变就不会再变化,Promise状态变化有两种:从pending转原创 2021-06-10 10:15:37 · 111 阅读 · 0 评论 -
JS生成UUID
uuid() { const s: any = []; const hexDigits = "0123456789abcdef"; for (let i = 0; i < 36; i++) { s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1); } s[14] = "4"; s[19] = hexDigits.substr((s[19] & 0x3) | 0x8,原创 2020-11-24 16:02:28 · 79 阅读 · 0 评论 -
前端路由
前端路由前端路由指的是URL和UI之间的映射关系,这种映射关系是单向的,即URL变化引起UI的更新(不刷新页面)前端路由简单实现方式hash实现hash是URL中hash(#)及后面的部分,例如:localhost:8000/#/dashboard中的hash值为 #/hash改变URL中的hash不会引起页面的刷新可以通过 location.hash获取当前hash值来实现UI的更新history实现history提供了 pushState和 replaceState两个原创 2020-10-23 14:33:28 · 126 阅读 · 0 评论 -
判断字符串中出现次数最多的字符,并输出出现的次数
前端比较常见的面试题:判断字符串中出现次数最多的字符,并输出出现的次数var str = 'abcdefgacddded';// 将字符串转换成数组var arr = str.split('');// 新建两个空数组来分别存放出现的字符和对应出现的次数arr.forEach((item,index)=>{ var temp = newArr.indexOf(item); if(...原创 2019-11-03 17:25:49 · 1584 阅读 · 1 评论 -
javascript中的基本数据类型和引用数据类型
1.ECMASCRIPT包含两种不同的数据类型的值:基本数据类型和引用数据类型。基本数据类型指的是简单的数据段,而引用类型指的是那些由多个值构成的对象2 .在进行变量赋值的时候,解析器必须确定这个值是基本数据类型还是引用数据类型3.常见的5种基本数据类型为String、Number、Boolean、Null、undefined。基本数据类型是按值访问的,因为可以操作保存在变量中的实际...原创 2019-10-24 19:35:17 · 252 阅读 · 0 评论 -
怎么将伪数组转成数组
伪数组转数组1. 为什么会出现伪数组在jquery中,使用下面的代码获取元素var divArr = $("div")返回的并不是一个数组,而是一个伪数组,伪数组属于对象,对于伪数组,一些数组循环遍历的方法就不能用了,比如forEach,当然,在jquery中有each可以代替forEach实现对伪数组的遍历,但是对于伪数组和数组的转换的原理还是有必要看一下的怎么将伪数组转换成数组...原创 2019-10-20 21:23:55 · 210 阅读 · 0 评论 -
如何将url地址中的参数解析成对象
有这样一串地址:https://www.baidu.com?name=zx&pwd=123456&remember=true怎么将?后面的字符串解析成一个对象var url = 'https://www.baidu.com?name=zx&pwd=123456&remember=true';// 第一次截取,截取?后面的内容,返回一个字符串var pa...原创 2019-10-20 21:04:05 · 930 阅读 · 0 评论 -
原生JavaScript书写ajax请求
1. get请求// 新建一个请求对象var xhr = null;// 兼容IE浏览器if(window.XMLHttpRequest){ xhr = new XMLHttpRequest();}else{ xhr = new ActiveXObject("Microsoft.XMLHTTP");}// 指定访问的地址(请求的方式,请求的地址,异步请求还是..)xhr.ope...原创 2019-10-16 16:57:54 · 443 阅读 · 0 评论 -
fastclick插件
fastclick插件可以解决移动端点击延迟300ms的bug首先引入插件fastclick在项目中导入插件document.addEventListener('DOMContentLoaded', function() { FastClick.attach(document.body); }, false);...原创 2019-10-12 20:58:51 · 150 阅读 · 0 评论 -
tap事件
tap事件是用来区分移动端的click事件的在移动端,click事件有延迟,延迟主要是判断当前是滑动还是点击,延迟时间大约有300ms为了提升用户体验,tap事件可以降低延迟的时间下面是tap事件的函数...原创 2019-10-12 20:43:43 · 2844 阅读 · 0 评论 -
移动端判断手势滑动方向的方法
移动端有swipe方法,指的是手势的滑动方向封装一个函数来判断手势是左滑还是右滑// 这里判断手势是左滑还是右滑var bindSwipeEvent = function(dom,leftCallback,rightCallback){ var isMove = false; // 判断是否存在滑动行为 var startx = 0; var distance = 0; dom.a...原创 2019-10-12 19:57:02 · 543 阅读 · 0 评论 -
移动端的轮播图
移动端的轮播图的实现可以直接使用h5的属性和方法来实现,另外内核也只兼容webkit即可页面基本结构<div class="jd_banner"> <ul class="clearfix"> <li><a href="#"><img src="./images/l8.jpg" alt=""></a><...原创 2019-10-12 19:01:26 · 183 阅读 · 0 评论 -
遍历数组
遍历数组需求:遍历数组代码如下:<script>var arr = ["关羽","张飞","赵云","马超","黄忠"];for(var i=0;i<arr.length; i++){ console.log(arr[i]);}</script>案例练习1:把1-10的之间所有的奇数放在一个数组里需要注意的是:怎么将这些奇数放在一个数组里从...原创 2019-07-01 16:31:53 · 663 阅读 · 0 评论 -
数组案例练习
数组案例练习求一组数中所有数值的和和平均值代码如下:<script>var sum = 0;var avg = 0;var arr1 = [10,20,30];for(var i=0; i<arr1.length; i++){ sum+=arr1[i];}avg = sum/arr.length;console.log(arr1);console.lo...原创 2019-07-01 22:42:10 · 157 阅读 · 0 评论 -
伪数组和arguments
伪数组和argumentsarguments// arguments是一个对应与传递给函数的参数的类数组对象。// arguments对象不是一个Array.它类似与Array(即伪数组),单数除了length和索引元素之外没有任何Array属性,可以更改元素的值,但是不能更改长度。// 如果调用的参数多于正式声明接受的参数,则可以使用arrguments对象。这种技术对于可以传递可变数量...原创 2019-07-07 16:00:38 · 183 阅读 · 0 评论 -
数组的添加和删除
数组的添加和删除栈操作(先进后出)// push() ,返回新数组的长度// pop() 取出数组中的最后一项,修改length的属性, 返回被删除的元素<script> var arr = [1,2,3]; arr.push(4); var aaa = arr.push(4); console.log(arr); // expected output : [1,...原创 2019-07-07 17:40:52 · 878 阅读 · 0 评论 -
数组练习案例2
数组练习案例2将字符串数组用|或者其他符号分割代码如下:<script>var arr=[1,2,3,4,5,6,7,8,9];var str=arr[0];//为了避免第一个名字之前有|,把第一个名字从数组中取出来,赋值给str。var separator="";for(var i=1;i<arr.length;i++){ str+=separator+ar...原创 2019-07-02 10:13:15 · 279 阅读 · 0 评论 -
数组的链接、截取和替换
数组的链接、截取和替换concat : 此方法用于合并两个或者多个数组。不会改变原有的数组,二是返回一个新的数组<script>var arr1 = [1,2,3];var arr2 = [4,5,6];console.log(arr1.concat(arr2));// expected output : [1,2,3,4,5,6]</script>...原创 2019-07-08 10:48:30 · 254 阅读 · 0 评论 -
数组元素索引
数组元素索引indexOf(): 返回在数组中可以找到一个给定元素的第一个索引,如果没有,则返回-1.(一般为从前往后查找)<script>var arr1 = [1,2,3,4,2,6];console.log(arr1.indexOf(2));//expected output : 1console.log(arr1.indexOf(2,2));//expecte...原创 2019-07-08 11:02:24 · 2573 阅读 · 0 评论 -
清空数组
清空数组array.splice(0)array.length = 0;array = []; // 即开启一个新空间,老数组会被回收原创 2019-07-08 11:04:05 · 309 阅读 · 0 评论 -
数组综合练习
数组综合练习将一个数组输出为 | 分割的形式,使用两种方式实现<script>// 方法1:var arr = [1,2,3,4];var str = arr[0];var separator = "|";for(var i=1; i<arr.length; i++){ str+=separator+arr[i];} // 内容容易溢出,不建议使用//方...原创 2019-07-08 16:24:19 · 340 阅读 · 0 评论 -
事件驱动的基本知识
JavaScript是以事件驱动为核心的一门语言事件的三要素①事件源②事件类型③驱动程序-匿名函数获取事件源的方法document.getElementById();document.getElementsByTagName();document.getElementsByClassName();document.getElementsByName();···事件...原创 2019-07-08 22:05:42 · 291 阅读 · 0 评论 -
关闭广告的小实例
关闭广告css部分body { margin: 0px; padding: 0px;}.banner-wrap { background-color: #000; height: 75px;}.banner { position: relative; margin: 0 auto; width: 1210px; height: 75px; background: ...原创 2019-07-08 22:09:27 · 247 阅读 · 0 评论 -
DOM概述
DOM概述解析过程HTML加载完毕后,渲染引擎会在内存中把HTML文档,生成一个DOM树;getElementById()是获取DOM上的元素。然后操作的时候修改的是该元素的属性。什么是DOMDOM为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构。目的其实就是为了让JS操作HTML元素而制定的一个规范。节点从上面的结构图中可以看到,整个文档就是一个文档节点。而每一个H...原创 2019-07-09 19:31:30 · 270 阅读 · 0 评论 -
DOM节点操作
DOM节点操作节点的访问关系都是属性,节点的操作都是函数或者方法。创建节点:document.creatElement();插入节点:①appendChild() ② insertBefore()删除节点:removeChild()复制节点:cloneChild()<div class="box"> <div class = "box1"></di...原创 2019-07-09 20:23:01 · 252 阅读 · 0 评论 -
节点属性的操作
节点属性的操作<script>window.onload = function(){ var eleNode = document.getElementsByTagName("img")[0]; //属性、赋值的两种方法 //1.元素节点.属性或者元素节点[属性] console.log(eleNode.src); console.log(eleNode.tagName)...原创 2019-07-09 20:50:26 · 138 阅读 · 0 评论 -
冒泡排序
冒泡排序扩展:八大排序算法冒泡排序是从小到大排序(简单版)思路:双重for循环①用第一个for循环控制轮数。②用第二个for循环控制次数。规律:比较的轮数:n-1(n为元素的个数)每轮比较的次数:n-1简单实现冒泡排序<script>//需求:冒泡排序(简单版)//理论:1.比较轮数:n-1次. 2.每轮比较的次数:n-1次. 3.符合某个条件交换位置。/...原创 2019-07-05 10:41:09 · 490 阅读 · 0 评论 -
利用table制作九九乘法表
javascript制作九九乘法表代码如下:<script language="javascript">//需求:利用table表制作九九乘法表//思路:table表中的td和tr进行输入和输出,不需要换行。//步骤:1.新建一个Table表document.write("<table border='1'>");//步骤2:利用tr输出9个行,用到简单的fo...原创 2019-06-30 08:55:29 · 1876 阅读 · 0 评论 -
函数理论知识
函数的理论知识什么是函数函数就是可以重复执行的代码块。为什么要用函数因为一部分代码使用次数可能会很多,所以封装起来,需要的时候调用就可以了。案例:求和(总是求和)函数的定义关键字: functionfunction 函数名 {} { 程序 }.函数的使用function fn(){ console.log(1);}fn();//函数不调用不执行。functio...原创 2019-07-05 16:29:55 · 268 阅读 · 0 评论