Javascript
文章平均质量分 61
Javascript
drunk喵咪
学习这件事,不是缺乏时间,而是缺乏努力。
展开
-
原生js实现分页
原生javascript分页 html分页与ajax数据请求结合使用 前端js分页1. page.css.pagination { padding:5px; font-family: '微软雅黑',Arial,Verdana,arial,serif;}.pagination ul { list-style: none; padding-left: 0; font-size: 0;}.pagination ul li { padding: 0 10px;原创 2022-04-12 15:25:53 · 1992 阅读 · 0 评论 -
js 树形结构数据 已知某一子节点 一次向上获取所有父节点
已知树形结构 res。现在有一个对象是{code: 1,name: “水上分局”},想向上依次获取取得父级,比如说水上分局 父节点是汉阳区 汉阳区父节点是武汉市 武汉市父节点是湖北省 最后将 汉阳区 武汉市 湖北省var res = [{ code: 1, name: "湖北省", children: [{ code: 1, name: "武汉市", children: [{ code: 1, .转载 2021-08-04 20:07:34 · 3266 阅读 · 1 评论 -
数组的遍历方法的区别
数组的5中遍历方法,forEach,map,some,every,filter1.forEach没有返回值(返回值为undefined),可以改变数组本身forEach到底可以改变原数组吗?这几天在平时练习的时候,发现一个很匪夷所思的问题!就是我的印象中,forEach是可以改变原数组的呀!!!???,but !为什么现在这么简单的字符串数字组成的数组,咋就永远改不了原数组那???咋就这么费劲的吗???后来,在各种尝试无果后,硬是逼着我,无奈的打开了项目,我就想看看平时我都用的这么理所当然可以改原创 2021-06-08 01:28:59 · 172 阅读 · 0 评论 -
indexedDb的使用
浏览器数据库IndexedDB入门教程<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0">原创 2021-04-15 19:03:30 · 173 阅读 · 0 评论 -
移动端h5页面预览word文档
在web端预览word文档,可以使用iframe来实现。但由于兼容性问题,并不能使用iframe在安卓和ios上预览文件经测试发现,mammoth插件可以实现该功能<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-原创 2021-04-08 10:14:19 · 7881 阅读 · 2 评论 -
动态加载script文件
方法一(不建议使用):document.write(<script src="https://cdn.bootcss.com/vConsole/3.3.4/vconsole.min.js"><\/script>)document.write('<script>new VConsole()<\/script>');当脚本中存在以 document.write 的方式向页面内写入内容时,各浏览器对于执行各个线程的顺序可能不一致此现象造成在各浏览器里,某原创 2021-03-30 14:03:57 · 830 阅读 · 1 评论 -
代理
代理技术如何实现一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术。常用的代理技术分为正向代理、反向代理和透明代理。正向代理一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术。关于正向代理的概念如下:正向代理是一个位于客户端【用户A】和原始服务器(origin server)【服务器B】之间的服务器【代理服务器Z】,为了从原始服务器取得内容,用户A向代理服务器Z发送一个请求并指定目标(服务器B),然后代理服务器Z向服务器B转交请求并将获得的内容转载 2021-03-19 12:00:16 · 381 阅读 · 0 评论 -
ajax中参数traditional的作用
在使用ajax向后台传值的时候,有的时候一个字段需要传多个值,这种情况下会想到用数组形式来传,比如:$.ajax({ type: "post", async: true, data: { "records": ["123","456","789"] }, url: "xxxxx", error: function(request) {}, success: f...转载 2019-10-21 09:57:27 · 818 阅读 · 0 评论 -
js宏任务和微任务
1、js为什么是单线程什么是进程?进程:是cpu分配资源的最小单位;(是能拥有资源和独立运行的最小单位)什么是线程?线程:是cpu调度的最小单位;(线程是建立在进程的基础上的一次程序运行单位,一个进程中可以有多个线程)浏览器是多进程的放在浏览器中,每打开一个tab页面,其实就是新开了一个进程,在这个进程中,还有ui渲染线程,js引擎线程,http请求线程等。 所以,浏览器是一个多进程的。大家都在说js是单线程的,但是为什么要设计成单线程?这主要和js的用途有关,js是作为浏览器的脚本语言,主原创 2021-02-23 10:47:29 · 528 阅读 · 0 评论 -
es6 标准入门
es6 标准入门阮一峰 es6 标准0、疑难点问题一:关于全局变量a的值的问题var a = [];for (var i = 0; i < 10; i++) { //每次循环时,a[i]都等于函数function () { console.log(i);} ,循环时函数未调用 a[i] = function () { console.log(i); };}//调用数组a中的函数,此时,循环结束,全局变量为10,所以a中的函数调用后都为10a[6](); // 10原创 2021-02-18 16:25:15 · 607 阅读 · 0 评论 -
JS开发必须知道的41个技巧
Array1.数组交集普通数组const arr1 = [1, 2, 3, 4, 5 , 8 ,9],arr2 = [5, 6, 7, 8, 9];const intersection = arr1.filter(function (val) { return arr2.indexOf(val) > -1 })console.log(intersection) //[5, 8, 9]数组对象数组对象目前仅针对value值为简单的Number,String,Boolan数据类型con转载 2021-02-07 16:51:12 · 214 阅读 · 0 评论 -
JavaScript中的各种骚操作
01.数组去重正常我们实现数组去重都是通过双层变量或者indexOf的方式。(1)双层for循环去重function unique(arr) { for(var i=0;i<arr.length;i++) { for(var j=i+1;j<arr.length;j++) { if(arr[i] === arr[j]) { arr.splice(j,1); j--转载 2021-02-07 14:12:38 · 242 阅读 · 0 评论 -
HTML5 拖拽
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>拖拽2</title> <style type="text/css"> body{ height: 600px; border: 1px solid green; }原创 2021-01-19 11:14:27 · 140 阅读 · 0 评论 -
根据后端返回的地址下载PDF文件
需求在谷歌(Chrome)浏览器中,使用a标签属性download下载pdf链接文件,如果是相同域时,可以直接下载;但是如果域不同,则不是下载,而是直接打开页面预览文件。但是需求是直接点击下载文件,而不是打开预览;以及下载后台返回的文件流。方法一/* * 根据后端返回的pdf文件的地址,下载pdf文件 * url 完整的路径 * fileName 文件名 * type 文件类型,如.pdf */const fileLinkToStreamDownload = (url: string,原创 2021-01-15 17:20:01 · 3343 阅读 · 2 评论 -
proxy基础入门
proxy官网Proxy 对象用于创建一个对象的代理,从而实现基本操作的拦截和自定义(如属性查找、赋值、枚举、函数调用等)。1、术语handler包含捕捉器(trap)的占位符对象,可译为处理器对象。traps提供属性访问的方法。这类似于操作系统中捕获器的概念。target被 Proxy 代理虚拟化的对象。它常被作为代理的存储后端。根据目标验证关于对象不可扩展性或不可配置属性的不变量(保持不变的语义)。2、语法const p = new Proxy(target, handler)参原创 2020-12-24 17:57:10 · 984 阅读 · 1 评论 -
svg入门笔记
位图:由像素点组合成图像 canvas矢量图:以数学向量方式记录图像,内容以线条和色块为主. svgsvg是基于xml的技术文件后缀.svg<svg></svg>是最外层的根结点xmlns定义svg命名空间<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DT原创 2020-12-07 17:49:19 · 154 阅读 · 0 评论 -
onscroll 事件和onScrollCapture事件
onscroll 事件在元素滚动条在滚动时触发。HTML 中:<element onscroll="myScript">JavaScript 中:object.onscroll=function(){myScript};JavaScript 中, 使用 addEventListener() 方法:object.addEventListener("scroll", myScript);<!DOCTYPE html><html><head>原创 2020-11-24 10:47:48 · 6889 阅读 · 0 评论 -
TypeScript入门
ts是js的超集,为js添加类型系统0.环境安装要使用ts,先在系统中全局安装TypeScriptnpm install typescript -g在VS code中直接运行,先将ts文件转化为js文件//将ts文件转化为js文件tsc fileName //执行文件node fileName或者直接在文件中安装ts-node插件npm install -g ts-node安装之后可以直接执行ts文件//执行文件tsnode fileName1、ts的组成模块函数原创 2020-11-23 14:47:15 · 1261 阅读 · 0 评论 -
题目
1、给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]var twoSum = function(nums, target) { var result nums.some(原创 2020-11-11 10:46:49 · 88 阅读 · 0 评论 -
javascript中string与number运算
javascript中string与number相加得到字符串,相减却是数字var a = "100";var b = 11;var c = 9;var d = "A"console.log(a+b); //10011console.log(typeof(a+b)); //stringconsole.log(a+b-c); //10002console.log(typeof(a+b-c)); //numberconsole.log(b-d); //NaNconsole.l原创 2020-11-05 11:10:55 · 672 阅读 · 0 评论 -
super
super关键字即可做函数使用,也可做对象使用,两种情况,用法完全不同constructor 是一种用于创建和初始化class创建的对象的特殊方法。(1)super做函数使用class A { constructor() { console.log(new.target.name); // new.target 指向当前正在执行的函数 }}class B extends A{ constructor(){ //构造函数 super() //es6要求,子类的构造函原创 2020-11-02 17:09:34 · 273 阅读 · 0 评论 -
空间复杂度和时间复杂度
算法是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度...转载 2019-12-30 09:29:58 · 160 阅读 · 0 评论 -
js中简单算法
1、删除数组中所有的假值,false,null,0,'',undefined,NaNlet falseValue =function(arr){ let newArr=[]; arr.forEach((item)=>{ if(Boolean(item)){ newArr.push(item) } }) ...原创 2019-12-27 14:23:53 · 340 阅读 · 1 评论 -
数组reduce()方法
1、语法arr.reduce(callback,[initialValue])reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。callback (执行数组中每个值的函数,包含四个参数) 1、previousValue (上一次调用回调返回的值,或者...原创 2019-12-26 15:16:05 · 2627 阅读 · 0 评论 -
深入了解JS中通过[]和.获取对象属性的区别
一般来说,’.'运算符和[]可以相互替代,比如 let obj = { name : 'sena'}; console.log(obj.name) // 'sena'console.log(obj[name]) // 'sena'在这之上,我们需要了解关于他们的一些限制.运算符: 右侧必须是一个属性名称命名的简单标识符[] : 右侧必须是一个计算结果为字符串...转载 2019-12-25 18:00:50 · 377 阅读 · 0 评论 -
函数
1、普通函数function showName(name){ alert(name)} 1)JS中同名函数的覆盖在js中函数是没有重载的,定义相同的函数名,不同参数签名的函数,后面的函数会覆盖前面的函数。调用时,只会调用后面的函数ss(){ let o={0:45,1:56,2:89,length:3}; for(let i=0;i<o.length;i...原创 2019-12-23 16:00:36 · 156 阅读 · 0 评论 -
总结
let和var以及const有什么区别var声明的变量会挂载在window上,而let和const声明的变量不会var声明变量存在变量提升,let和const不存在变量提升let和const声明形成块作用域同一作用域下let和const不能声明同名变量,而var可以vue中的v-if和v-show的区别相同点:v-if与v-show都可以动态控制dom元素显示隐藏不同点:v-...原创 2019-12-23 11:28:14 · 242 阅读 · 0 评论 -
模拟数据mockjs
使用部分1、在项目中安装mockjs,axioscnpm install mockjs axios --save2、创建mock.js文件const Mock=require('mockjs') //获取mock对象const Random=Mock.Random //获取random对象,随机生成各种数据const domain ='http://mockjs.com/...原创 2019-12-20 17:19:26 · 328 阅读 · 0 评论 -
ready()方法、onload事件、JQuery---load()方法
关于前端加载的运用有两种形式:一、DOM树加载完成后使用,ready();二、页面完全加载后使用,onload、load()。了解:HTML DOM文档加载顺序:1、解析HTML结构2、加载外部脚本和样式表文件3、解析并执行脚本代码4、构造HTML DOM模型5、加载图片等外部文件6、页面加载完毕ready() 方法是在页面完成HTML的加载并建立了DOM树之后开始执行;onl...转载 2019-12-06 11:53:23 · 605 阅读 · 0 评论 -
正则表达式
1、实例化正则表达式对象 构造函数 var pattern=new RegExp("正则表达式","模式"); 字面量 var pattern= /正则表达式/模式;2、模式i ignore case 不区分大小写g global 全局m multiline 多行3、正则表达式对象 pattern.lastIndex 下一次匹配的开始位置 ...原创 2019-08-29 19:49:58 · 125 阅读 · 0 评论 -
数组排序
冒泡排序(从大到小)第一个数先与第二个数比较,然后第二个数字与第三个数字比较,之后同理,依次循环,第一次循环结束最小的放在最后 var arr=[2,1,3,5,6,4,7,8,9,0]; function maopao(array){ if(array.length<=1){ return array; }...转载 2019-08-28 14:40:56 · 91 阅读 · 0 评论 -
原型protorype
(1)创建一个函数以后,解析器都会默认在函数中添加一个数prototype,prototype属性指向的是一个对象,这个对象我们称为原型对象(2)当函数作为构造函数使用,它所创建的对象中都会有一个隐含的属性执行该原型对象,这个隐含的属性可以通过对象.__proro__来访问(3)原型对象相当于一个公共区域,凡是通过同一个构造函数创建的对象通常都可以访问到相同的原型对象,我们可将对象中共有的属性...原创 2019-10-21 14:06:47 · 293 阅读 · 0 评论 -
画布
画布画布就是一个标签,没有绘图功能,有绘图功能的是图形上下文。获取图形上下文getContext()绘制步骤获取canvas对象var canvas = document.getElementById(‘canvas’)获取图形上下文var context = canvas.getContext(‘2d’)设置绘图的样式context.fillStyle = ‘red’ 填充色...原创 2019-09-18 09:21:14 · 454 阅读 · 0 评论 -
JS同步和异步
1、ajax(async javascript and xml)异步的javascript 和 xmljavascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条流水线,仅仅是一条流水线而已,要么加工,要么包装,不能同时进行多个任务和流程。同步和异步,无论如何,做事情的时候都是只有一条流...原创 2019-09-05 20:24:21 · 244 阅读 · 0 评论 -
事件
事件1) 简单应用为元素添加事件响应函数,当执行相应的操作的时候会执行该函数// 1. 事件源 var one = document.getElementById("one"); // 2. 绑定事件处理函数 var a = 1; one.onclick = function(event){ // 3. 事件对象 console.log(event); al...原创 2019-09-02 17:17:28 · 98 阅读 · 0 评论 -
js题目
一、简答题Javascript的组成?ECMAScript DOM BOMJavascript可以运行在什么地方?Node 浏览器Javascript基本数据类型有哪些String Boolean NUll NUmber undefinedJavascript中的内置对象以及函数有哪些?Math document Location History函数:Object...原创 2019-09-02 16:44:30 · 459 阅读 · 0 评论