![](https://img-blog.csdnimg.cn/20190926001905374.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JavaScript进阶之路
从理解到应用
hello,是翠花呀
地势坤,君子以厚德载物
展开
-
记录一些杂碎
前端搜索高亮:highlight(str) { let keyWord = this.keyWord.split(' ') let newStr = str keyWord.forEach(item => { const reg = new RegExp(item, 'ig') newStr = newStr.replace( reg, `<span style="color: #0672FF">${item}</span>原创 2021-12-30 23:57:28 · 699 阅读 · 0 评论 -
JavaScript必备知识点之XMLHttpRequest请求
XMLHttpRequest 对象用于在后台与服务器交换数据。使用XMLHttpRequest能够:在不重新加载页面的情况下更新网页、在页面已加载后从服务器请求数据、在页面已加载后从服务器接收数据、在后台向服务器发送数据。创建XMLHttpRequest对象:xml = new XMLHttpRequest();open(): 初始化请求,接收参数有请求的类型、URL、是否异步。se...原创 2019-09-07 17:44:26 · 1028 阅读 · 0 评论 -
javascript必备知识点之 call、apply、bind 的应用
上文分享了this的应用,这次分享call、apply、bind的应用1.每个函数都有call、apply、bind方法,通俗点说就是function foo()这样形式就能使用foo.call()/apply()/bind()方法。2.它们都能改变函数执行上下文。区别在于:1)call、apply返回值为undefined,且函数立即执行,bind返回值为函数,不会立即执行。2)ca...原创 2019-09-07 00:40:13 · 171 阅读 · 1 评论 -
nodejs简易上传富文本文件系统
nodejs 简易上传文件系统相关技术:nodejs、express前端没使用框架,用的 jquery,主要是后台结构。实现效果:1.登录(没有做过多验证,这里主要是文件编辑和上传)2.文件编辑。这里使用的是 wangEditor 编辑器。3.用户关闭浏览器再次打开编辑器,能看到上次编辑的内容。4.用户刷新界面能看到上次编辑的内容。5.文件保存6.文件删除。7.文件编辑。...原创 2019-08-22 00:28:17 · 832 阅读 · 0 评论 -
JavaScript你也可以掌控的this指向
this 驰骋沙场1.环境。在 window 环境下,全局 this 指向 window:Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, parent: Window, …}}可以通过 this 访问 window 下的属性。在 node 环境下,this 指向 global。Object [global] { DTRA...原创 2019-06-29 15:00:00 · 220 阅读 · 2 评论 -
JavaScript必学之数据深浅拷贝
js 对象赋值之浅拷贝深拷贝在实际中应用我们有时候有这样的需求,需要将一个值赋值给另外一个变量。例如:var a = 10;var b = a;在这里我们首先需要知道基本类型和引用类型的区别。js 有 6 种基本数据类型:Undefined、Null、Boolean、Number、String、Symbol。引用类型有 Array、Date、Function、(Boolean、Strin...原创 2019-06-29 14:57:04 · 274 阅读 · 0 评论 -
JavaScript之继承的几种形式
继承原型链继承在 es5 中,为了实现方法的共享和复用,使用原型链作为实现继承的主要方法。每一个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,实例都包含一个指向原型对象的内部指针。一个例子:function Test() { console.log("1111");}Test.prototype.foo = function() { console.log...原创 2019-06-29 14:56:01 · 185 阅读 · 0 评论 -
JavaScript之变量函数作用域
前言:在此专栏中将会讲到 js 基础性的知识,包括但不仅限 es5、es6。将知识点与实际应用相结合,从理解到开发。每一次学习都有所收获,每一次重温知识点都加深印象,每一次掌握一种新知识都像打开了新世界的大门。希望在自己学习的同时能够帮助更多的人学习和理解。同时也欢迎各位猿友提出宝贵的建议和交流,有不对的地方还请赐教。1.使用2.变量3.函数4.作用域一. 开门见山基本上每种语言的...原创 2019-06-29 14:48:51 · 259 阅读 · 0 评论 -
javascript之优先队列
队列是一种表,与栈不同的是它是先进先出的顺序存储结构,只能在队尾插入元素在队首删除元素。// 优先队列排列,数值越小优先级越高class Queen { constructor() { this.dataStore = []; } enqueen(name, numberPlate) { this.dataStore.push({ name: name, num...原创 2019-05-08 00:28:51 · 784 阅读 · 0 评论 -
JavaScript之发布订阅模式理解
发布、订阅,从名称上能够联想到文章的发布和订阅。比如公众号运营者在公众平台上发布一篇文章,阅读者订阅了这个公众号,能够获得这篇文章的推送。发布订阅模式是一种一对多的关系,比如“公众号”和“订阅者”,一个公众号对应很多个订阅者。当公众号文章发布的时候,多个订阅者会收到消息。发布订阅模式和观察者模式非常相像,很多人认为这两种模式是一样的,如果不考虑调度中心,这两种模式没啥差别,如果把调度中心考虑进去...原创 2019-05-07 13:37:01 · 993 阅读 · 0 评论 -
JavaScript实现去重的几种方法
js 各种方法去重原数组:let arr = [1, 3, 4, 2, 5, 6, 8, 4, 7, 9, 6];1.使用 set,set 不重复的数组let newArr1 = [...new Set(arr)];2.使用 includeslet newArr2 = [];arr.filter(item => { if (!newArr2.includes(item)...原创 2019-04-30 00:20:47 · 247 阅读 · 0 评论 -
javascript之数据类型的判断
/** * @param{*}基本数据类型、引用类型 * @desc 基本数据类型(原始类型|简单数据类型):number、boolean、null、undefined、string * 一种复杂数据类型object。可以用typeof检测 返回字符串 * ES6新增的数据类型symbol * ES6新增的数据结构:set、map * * ...原创 2019-04-08 00:32:57 · 172 阅读 · 0 评论 -
js大数计算
最近项目需要对超大数(20几位数)进行基本运算,感觉天空飘来一片乌云~~推荐大数计算插件:big-integer看描述说可以计算var largeNumber = bigInt(&quot;75643564363473453456342378564387956906736546456235345&quot;);这么大的数,于是尝试了一下。说明中有一段:Note that Javascript numbers ...原创 2018-10-22 16:35:33 · 3891 阅读 · 0 评论 -
js发送和接收二进制字节流数据
发送二进制数据var oReq = new XMLHttpRequest();oReq.open("POST", url, true);oReq.onload = function (oEvent) {// Uploaded.};var blob = new Blob(['abc123'], {type: 'text/plain'});oReq.send(blob);或者v...转载 2018-09-25 15:58:42 · 28532 阅读 · 1 评论 -
highcharts 饼图常用设置项
highcharts 饼图常用设置项 legend: { enabled: false, //不显示图例 /* layout: 'vertical', //图例布局:竖直方向排列 backgroundColor: '#fff', //图例背景颜色 borderRadius: '5', //图例背景边框圆角 maxHeight...原创 2018-05-07 18:08:07 · 8480 阅读 · 0 评论 -
base64转PDF文件预览|Cannot read property 'GlobalWorkerOptions' of undefined
将后台发送过来的base64格式的文件转为PDF文件预览,这里使用的是pdf.js这个插件。var pdfData = atob(接收的base64字段);// 通过&amp;lt;script&amp;gt;标签加载, 创建快捷方式导出PDF.var pdfjsLib = window['pdfjs-dist/build/pdf'];// 必须要指定workerSrc属性.pdfjsLib....原创 2018-05-03 09:49:01 · 7380 阅读 · 0 评论 -
url参数转换成字典类型
var arr = "www.baidu.com?id=123&name=mu&re=mmm&some=ooooo";//字典结构,json对象function ch(arg){ var reg = arg.match(/(\w+)=(\w+){1,}/g); //或者 //var rgs = new RegExp("(\\w+)=(\\w+){...原创 2018-03-22 14:15:44 · 2417 阅读 · 0 评论 -
js正则匹配去重
一般去重是通过遍历数组然后判断下标的方法去重,可以实现类似abacryutr这种字符串去重。var str = "335667";console.log(str.replace(/(.)(\1)+/g,'$2')); //3567上面的方法仅仅适用于两个重复的元素是紧挨在一起的。类似于这样就不适用了(353676)。所以为了去重,可以先将数组进行排序。var array = ['s','y',原创 2017-12-24 15:36:52 · 2287 阅读 · 0 评论 -
&& 、||短路原理的应用 与操作符的优先级
问题带入问题1:console.log(true && false) //?console.log("1" && 2) // ?console.log("" && 2) //?console.log(" " && 2) //?console.log(0 &&am原创 2017-12-22 15:09:00 · 496 阅读 · 0 评论 -
javascript 32位以内进制转换
function SA(number,jinzhi){ var san=number; if(jinzhi == 1 || jinzhi ==10){ return san+"转"+jinzhi+"进制结果为:"+number } var reslut = [ ],characterArray=[],prev=""; while(parseIn原创 2017-11-11 22:27:05 · 1576 阅读 · 2 评论 -
JavaScript 求整数区间[a,b]和[c,d]的交集
var area1="[-5,6]";var area2="[-3,7]";var array1=[],array2=[],all=[],conNum,connNum;function way(area1,area2){ var con1=area1.split(","); var con2=con1.toString().split("["); var con3=co原创 2017-11-06 09:56:43 · 1857 阅读 · 0 评论 -
JavaScript 编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。
function time(into){ var TimeF=into.substring(0,into.length-1); var Time=TimeF.replace(/([^\u0000-\u00FF])/g,'-'); var TimeA=Time.split("-"); var Y=TimeA[0], M=TimeA[1],原创 2017-11-02 21:59:04 · 1550 阅读 · 0 评论 -
if语句既执行if里的内容又执行else里的内容??不存在的(事件冒泡)
“窥屏”时,有群友说遇到一个问题,if语句既执行了if里的内容又执行了else里的内容,这怎么可能呢? 这是贴出的代码大概是这个样子: 看着这代码貌似没啥问题,但是又没有贴出html,不过不难猜出HTML大概是这个样子: 执行后的确是既弹出了1又弹出了0.仔细看代码里面有个parents方法。首先看一下这个方法是干啥的。 parents方法是在 DOM 树中搜索这些元素的父级元素原创 2017-08-15 00:30:58 · 6474 阅读 · 1 评论 -
原生ajax+php上传图片效果
目的:利用ProgressEvents规范中的进度事件和php相结合实现图片格式的判断及上传。前提理论: 有以下6个进度事件: 1.loadstart:在接收到响应数据的第一个字节时触发 2.progress:在接收响应期间持续不断地触 3.error:在请求发生错误时触发 4.abort:在因为调用abort()方法原创 2017-06-19 15:56:11 · 880 阅读 · 0 评论 -
函数与自定义变量重名||函数提升
在js中声明函数和变量同样会有提升,因为函数本身也是一个变量。函数声明和变量声明都会置顶,但函数的优先于变量置顶。当变量名与函数名相同的时候,变量名会被先赋值成函数然后再被赋值为之前的初始值。(变量和赋值语句一起写时,会被拆成声明和赋值两个部分,声明会置顶,赋值保留原位置不变)。var a = 3; function a2(){ a = 9; console.log("a="+a); }原创 2017-06-11 16:24:06 · 897 阅读 · 0 评论 -
基于原生JavaScript的一个计算器
昨天鼓捣着写了个简单的计算器~实现了加、减、乘、除以及进制转换和开根号的功能。使用parseFloat来解决小数乘法结果不准确的问题。使用栈的方法计算进制的转换。html部分的代码如下:<div class="outside"> <div class="outside-top"> <input type="text" id="displ" value=&quo原创 2017-04-20 20:49:29 · 412 阅读 · 0 评论 -
由对象数组引申||this的探讨
在学习对象数组的时候,对这对象内保存数据的方法比较感兴趣,于是敲了一遍书上给的代码。 function weekTemps(){ this.dataStore=[]; this.add=add; this.average=average; } function add(temp){ this.dataStore.pus原创 2017-04-13 15:05:43 · 315 阅读 · 0 评论 -
var 作用域||变量
平常我们在使用js 的时候一般使用var来声明变量,相比于C语言Java当中的声明变量要简单一些,但是简单肯定也会有简单的不好之处。 一般来讲,在函数内部(local variable)中,js初始化变量加var的为局部变量不加的时候表现为全局变量(它们都给window对象添加了一个属性)。例如: function foo() { t=11 } foo();原创 2017-04-06 15:14:32 · 5737 阅读 · 0 评论