javascript
letMeAlone_
坚持走自己的路,不被表象所迷惑,基础才是根本,沉淀才是正道,不幸并不是我的全部,珍惜眼前
展开
-
如何使用prototype来美化自己的代码?
刚学JS的时候我们定义函数的基本方式就是函数声明function test(){}//于是当函数多了就变成了function test1(){}function test2(){}到了后面会有意地使用用函数表达式var test=function(){}以上函数声明和函数表达式实际上写法差不多,只是我们使用函数声明的目的是函数声明提升,也就是我们通过声明定义的函数被提前执行,这样我们就能使用原创 2017-08-22 12:46:31 · 364 阅读 · 0 评论 -
javascript对JSON数组进行排序
我们经常回使用到数据格式var arr=[{num:1},{num:3},{num:2}]如何根据数组里面的JSON数据的某个key进行排序javascript有一个sort()方法,直接通过 arr.sort()进行排序,默认只对数组的值进行排序,然而以上的数组的值却是个JSON格式的。我们在看看sort方法的定义: 定义和用法 sort() 方法用于对数组的元素进行排序。 语法原创 2017-08-11 17:53:13 · 2581 阅读 · 0 评论 -
是否该使用严格模式?use strict
其实这篇文章是在2012年就写的,想想自己落后了几年了。很早一段时间我就看到过介绍严格模式的文章,但当时还是没有重视,因为两种模式下的区别还是挺大的,长年的书写习惯让我不太想去改变。但后来在我优化自己的代码的过程中发现,目前的代码确实是有点‘乱’,除了原本代码不够优美之外,还缺乏明确性,如果非要拿出一个来说,就是this的指向问题,当this为null或者undefined的时候,被强制转换成win转载 2017-08-04 12:03:24 · 3576 阅读 · 0 评论 -
高德地图多点标记 marker JSAPI
以下内容涉及到一些简单的接口使用场景是:通过选择某级别的城市或省份,将该级别下的所有具体地址标注到地图上,该场景适合通过地址查询经纬度来标记,以下内容为测试代码。刚看了下API写的,学习阶段,仅供参考使用高德地图,创建应用获得KEY,并通过JS导入。<!doctype html><html><head> <meta charset="utf-8"> <meta http-equi原创 2017-07-31 18:26:41 · 5287 阅读 · 0 评论 -
undefined
定义和用法 undefined 属性用于存放 JavaScript 的 undefined 值。 语法 undefined 说明 无法使用 for/in 循环来枚举 undefined 属性,也不能用 delete 运算符来删除它。 undefined 不是常量,可以把它设置为其他值。 当尝试读取不存在的对象属性时也会返回 undefined。 提示和注释 提示:只能用 === 运原创 2017-07-15 18:32:40 · 424 阅读 · 0 评论 -
谈谈JS的观察者模式(自定义事件)
该文转载自:http://www.cnblogs.com/LuckyWinty/p/5796190.html[附加题] 请实现下面的自定义事件 Event 对象的接口,功能见注释(测试1)该 Event 对象的接口需要能被其他对象拓展复用(测试2)// 测试1Event.on('test', function (result) { console.log(result);});Ev转载 2017-07-15 16:41:18 · 798 阅读 · 0 评论 -
跨域请求方式集锦--CORS跨域请求支持各种请求方式
同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的关键的安全机制。但是有时候跨域请求资源是合理的需求,本文尝试从多篇文章中汇总至今存在的所有跨域请求解决方案。跨域请求首先需要了解的是同源和跨源的概念。对于相同源,其定义为:如果协议、端口(如果指定了一个)和主机对于两个页面是相同的,则两个页面具有相同的源。只要三者之一任意一点有不同,转载 2017-06-26 14:36:15 · 1563 阅读 · 0 评论 -
js组件中那些晦涩难懂的写法,理解这个以后看组件会容易很多,包括JQ源码
以下会列出一些常见的简洁写法:1 (function(){})()基本上现在能看到的组件都是以这种形式来写的,这样写有什么好处?首先第一个就是防止全局变量的污染,那它是怎么个防止法呢?比如下面的写法://1:普通写法xx.js文件var a,b,c;//全局变量function k(){}k();//假设我们在一个文件中,引入了两个js组件,而且他们的写法都是上面这种形式,那么这两个文件的全原创 2017-07-12 19:43:31 · 876 阅读 · 0 评论 -
JS配置文件动态加载CSS,js和定义请求路径
以前加载JS.CSS文件都习惯直接在页面中 直接加载,比如<link rel="stylesheet" type="text/css" href="css/style.css"/><script type="text/javascript" src="js/login.js"></script>而请求后台则是写请求路径。后来因为项目要再部署一套,因为后台那边不知道什么情况,VFP写的。所以限制比较原创 2017-06-23 16:39:44 · 5188 阅读 · 2 评论 -
Vue 事件修饰符.self的用法
<!-- 阻止单击事件冒泡 --><a v-on:click.stop="doThis"></a><!-- 提交事件不再重载页面 --><form v-on:submit.prevent="onSubmit"></form><!-- 修饰符可以串联 --><a v-on:click.stop.prevent="doThat"></a><!-- 只有修饰符 --><form v-on:s原创 2017-10-26 15:22:13 · 8651 阅读 · 2 评论 -
关于canvas无法通过drawImage加载的原因
在使用drawImage方法的时候,发现无法加载 var can = $('#mycanvas')[0]; var cxt = can.getContext('2d'); var bg = new Image(); bg.src = "img/bg.jpg";原创 2017-12-06 10:33:28 · 5849 阅读 · 2 评论 -
js进阶的流程,我们到底在哪个阶段,要看什么
今天无意中看到了一篇博客,里面谈了一些JS模式,我突然回过头来想想自己的学习阶段,好像太过于分散,不集中了。有时候学得东西很基础,有时候又偏高一点,虽然自己能看懂,但总感觉这种顺序怪怪的。有种 龙珠第二代一样,还未学会飞结果先变赛亚人了,最重要的是,还是比较菜的赛亚人,要做就做越阶战斗的天才。哈哈哈。前几次抽了几本书,挺好的,一本是前端架构设计,一本是深入ES6,还有编写可维护的javascr转载 2017-07-15 17:40:05 · 2790 阅读 · 0 评论 -
正确设置 MME类型
请求中的 response - header 中的content-type项是指�0�2�0�2服务器发送给客户端内容的MIME类型,如果 设置不对 那么浏览器怕是不能正常解析;const path = require(“path”);// 多用途Internet邮件扩展(MIME)类型const mimeType= {“.323”:“text/h323” ,“.3gp”:“video...转载 2019-03-15 10:57:02 · 2479 阅读 · 0 评论 -
navigator.mediaDevices.getUserMedia录制桌面视频并保存
以下代码中有用到electron的desktopCapturer模块(用于PC应用开发),如果你并不需要,可以直接忽略,直接定义你要录制的视频源和音频源。重点如果要录制桌面,audio约束必须为 false,否则会报错,暂时不支持audio,如果你需要录制桌面的声音,则必须设置audio约束audio: {mandatory: {chromeMediaSource: ‘desktop’...原创 2018-12-01 17:57:48 · 13563 阅读 · 7 评论 -
blob对象转arraybuffer
var reader = new FileReader(); //byte为blob对象 reader.readAsArrayBuffer(byte); reader.onload=(e)=>{ var buf = new Uint8Array(reader.result); //buf为uint8Array ...原创 2018-08-08 14:44:11 · 3523 阅读 · 1 评论 -
关于如何使用webpack命令行传入变量,并在全局通过process.env来调用
关于这个问题着实让人头疼。对于大型的项目而言,配置太过复杂了。以下是我的需求场景及【解决方案】由于当前的项目是在开源DEMO的基础上做的。所以里面的很多webpack配置我都不熟,简直让我生不如死。需求 原本的DEMO分成 dev环境和pro环境。 在打包的时候一定是pro环境,这个打包并不是单纯的webpack打包。而是把程序打包成 PC应用【electron】。 原本DEMO的...原创 2018-07-27 11:31:44 · 20455 阅读 · 1 评论 -
call和apply的区别
文章转载自:http://www.qdfuns.com/notes/26042/e93934ad4e6c67ea2d8b1e2d2af12d3d.html 1、apply 与 call 是作用是什么,有何区别apply 与 call 最经常用于对象的继承中,两者的写法分别是 testObj.apply(obj,argArray) testObj.call(obj , arg1,arg2,arg转载 2017-07-03 09:20:05 · 459 阅读 · 0 评论 -
js面向对象编程
最近很在意自己的代码问题,想要进一步优化自己的代码,为了更符合编程思维,我觉得面向对象写法是很好的方式,这里不会涉及JS的原型链的问题,因为我个人还未去深入了解。这里只讲一讲OO。目前我写的风格,以及看到的很多代码,都是以JSON对象来处理的。例如window.ks={name:'JOY',getname:function(){return this.name;},setname:func原创 2017-07-10 18:48:48 · 272 阅读 · 0 评论 -
网站加载优化方法之一
现在的插件大大提升了我们开发的速度,但是同时,插件使用过多也会造成加载过慢的情况。1 一般我们建议把非必须先执行的JS代码放在最后,因为JS文件的加载是阻塞性的,当执行到这里的时候,浏览器会等待JS加载完毕再往下运行,当然我们也可以选择一部加载JS, async的定义和用法(是HTML5的属性) async 属性规定一旦脚本可用,则会异步执行。原创 2017-05-19 18:53:47 · 437 阅读 · 0 评论 -
KindEditor白名单过滤和视频发布
在使用KindEditor编辑器的时候发现,自2013年开始,国家信息安全中心规定,需要对数据注入进行防范,因此KinEditor在新版本中加入了标签过滤,虽然如此,但是人们一样可以绕过编辑器进行XSS攻击。如果发现KindEditor复制内容并粘贴无法获取原有的样式,那就是其中的一些标签被过滤了,而这些标签没有在htmltag列表里面,只有在这些规定的标签才不会被过滤,而KindEd原创 2016-09-07 18:23:00 · 7353 阅读 · 0 评论 -
javascript中URL的编码
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。下面简单介绍一下它们的区别1 escape()函数定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串转载 2016-09-02 12:54:43 · 277 阅读 · 0 评论 -
JQ选择器 如何选择同类元素的第N个子元素
之前想选择所有UL中的第N个LI ,于是这样写: $('ul li:eq(N-1)') ,它的结果是选择所有UL 下面的LI得出的结果中的第N个元素,这个思维是错误的(因为看着蛮顺眼的:选择所有UL 下面的第N个LI,在我脑子里$('ul li:eq(N-1)')已经被我分开解析了,要是官方能做成这种链式写法就好了比如:$('ul').$('li:eq(N-1)')),看来这写法还得等我再学多点原创 2016-08-28 22:25:26 · 4249 阅读 · 0 评论 -
H5拖放事件 "Uncaught TypeError: Cannot read property 'setData' of undefined"
H5拖放事件要点有以下几个dragableondragStartondropondragoverdragable属性设置为true表面该元素允许拖动,但是默认不允许放置为此需要在最终被放置的目标地点(元素)增加ondragover事件,阻止默认处理方式,换句话也就是说允许被放置而被放置的元素 需要增加 ondrop 以及ondragover事件原创 2016-08-17 13:17:31 · 10059 阅读 · 2 评论 -
window.open传递(数组)参数
有时候想要通过window.open并把数据传递过去,但是由于参数过多,不适合在URL里面添加,为此我们可以把这些数据放到一个Array里面。window对象有个对象属性叫opener这个属性是将父窗口作为一个引用我们可以通过这个引用来操作父窗口的数据;比如 我们在父窗口,希望传递的数据为array[],那么在子窗口所在的页面var parent_win原创 2016-08-15 16:33:58 · 8062 阅读 · 0 评论 -
js 禁止 复制,粘贴代码
本来是想找复制到剪贴板的功能的,奈何没有好的解决方法,zero clipbord.js 感觉又没必要特意去加载这个库,想想还是算了,手动复制吧禁止鼠标右键:oncontextmenu="return false";禁止选择:onselectstart="return false";禁止拖放:ondragstart="return fals转载 2016-08-26 09:31:57 · 895 阅读 · 0 评论 -
JQ与Canvas
虽然经常用JQ,但是对这个框架都没有深入学习,很多细节都不清楚,此次遇到的问题就是JQ选择canvas标签出现的。。。我很好奇为什么我现在才遇到这个,我是怎么过来的如果直接使用 JQ的ID选择器,发现提示错误如:var c=$("#mycanvas");c.getContext('2d');提示:"Uncaught TypeError: undefined原创 2016-09-22 18:01:00 · 2469 阅读 · 0 评论 -
js获取子页面全局变量及js变量跨域问题
项目中通过iframe内嵌了一个子页面,子页面定义了一些全局变量,父页面需要获取子页面的全局变量,做了一些测试(我的环境IE10和Firefox32.0.3),得出如下结论: IE下: window.frames['iPage'].变量名 火狐下:window.frames['iPage'].contentWindow.变量名 IE&火狐下:document.getEleme转载 2016-09-23 11:51:48 · 6258 阅读 · 0 评论 -
javascript call()
javascript 中call用处不少,用一句话概括就是动态改变this.比如说:function cat(){}//做一个原型扩展cat.prototype={food:"fish",say: function(){alert("I love "+this.food);}}var blackCat = new cat;blackCat.say();//当我需要一条黑狗也说它转载 2017-04-18 23:57:28 · 442 阅读 · 0 评论 -
javascript 闭包
文章转载自: http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。 下面就是我的学习笔记,对于Javascript初学者应该是很有用的。 一、变量的作用域 要理解闭包,首先必须理解Javascrip转载 2017-04-17 23:03:29 · 209 阅读 · 0 评论 -
跨域请求 数据返回却无法执行回调函数的原因之一
由于公司项目的问题,导致跨域的情况比较多。既要考虑安全性问题又要解决跨域。只能从中做一些取舍。今天发现的问题是,前端已经获取了后台返回的CALLBACK函数,但是无论如何都不执行。这可把我急的,之前也写过一次跨域请求。现在调用同样写好的函数,却是一个能执行一个不能执行。多次比对发现返回的内容也没有错。最后发现原因是我把回调函数写在了$(function(){//我把跨域请求也写在了这个匿名函数中原创 2017-04-13 23:12:40 · 3581 阅读 · 2 评论 -
跨域请求与微信开发
什么是跨域请求跨域是浏览器的一个同源策略的问题而衍生的需求,跨域请求是指服务器A的页面去请求服务器B的资源,而服务器A.B之间只要域名、端口号、IP不同都属于跨域而浏览器没有对SCRIPT,IMG等包含SRC属性的标签做同源策略的限制,因此有了一个JSONP的非官方协议,其原理是服务器A去访问服务器B的JS文件(这里不存在跨域限制),服务器B的JS文件去获取同源下面的资源,并把数据一并返回到服务器A原创 2017-03-29 17:43:20 · 6416 阅读 · 0 评论 -
jsonp跨域请求问题
同源策略当我们尝试去访问其他服务器的时候,总是被拒绝,这是因为同源策略的限制性导致的,所谓同源,就是同域名同端口下才叫同源,只要你访问的服务器是不同域名或者不同端口,都会无法请求到jsonp处理原理而 HTML 的<script>元素是一个例外。利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资原创 2017-03-25 12:07:55 · 508 阅读 · 0 评论 -
JS闭包的运用及匿名函数的作用
1:闭包的目的闭包的目的就是为了变量私有制,如果学过其他语言可以联想到protected 这个关键词,就是防止其他对象去访问私有的属性或成员方法/函数2:闭包的问题根源有时候,我们希望有一个全局变量,能够作为唯一标识去读取数据,但是全局变量都属于window对象,这就产生了一个问题,那就是这个变量能在任何情况下被调用,修改,导致稳健性不够高,维护方面也会产生很大的忧患。举个典原创 2016-09-23 15:51:15 · 719 阅读 · 0 评论 -
关于form表单在ajax中return false仍然提交的内容
在实现form表单的时候,我们往往会有一些需求,就是对表单数据进行验证,再决定是否提交表单内容。而默认的form表单的默认事件,就是提交表单内容,那么应该如何进行判断呢?通常有两种写法,原理都一样,只是习惯不同,一种就是form的 onsubmit事件,另一种则去掉input type='submit'这个默认提交按钮,改成一个普通的button来执行提交事件(你会发现如果你改成原创 2016-09-12 21:55:54 · 5293 阅读 · 0 评论 -
XML/DTD基本用法 DTD禁用的解决方法
XML和DTD(DTD一般用于某些比较特殊而且固定的行业,使用它是为了规范和硬性规定) (XML常用于一些经常调用的常量且其值并非涉及到安全性的问题,比如游戏中很多参数,怪物的等级,属性,物品的属性等一般使用XML来定义,因为它的数据量特别大,放在数据库的话对数据库的负担较大,而且这些游戏数据只需要在开始的时候加载一次就可以了。所以更适合使用XML来完成,,而DTD文件则可以说是XML的一个模板(原创 2016-07-26 18:54:25 · 15067 阅读 · 0 评论 -
javascript创建cookies无法保存至本地
已经设置了失效时间,但cookie仍然无法保存下来。IE中无法保存到本地有N个原因:1 internet选项设置,替代自动保存cookie,始终接受第一方和第三方cookie, cookie会话永远有效2 没有设置path属性,网上大多数都认为只要设置 NAME和 expires这两个属性就可以了,实际上我遇到的就是这个问题,不设置path为根目录,无原创 2016-07-26 18:39:27 · 548 阅读 · 0 评论