
javascript
文章平均质量分 54
javascript从入门到精通
wangjun5159
2011年-至今一直从事java web开发,全栈开发,包括但不限于java技术栈、vue技术栈、微信小程序,uniapp,抓包wireshark/fiddler、nginx/keepalived,了解原生安卓,知道electron,关注flutter,欢迎技术咨询
展开
-
vue.js vue使用debounce 并传参
debounce是防抖动,就是延迟一段时间再执行,指定时间内如果有多次动作,则取消先前动作,以最后一个动作为基点往后延迟。最经典的应用场景就是根据关键词搜索,我们通常会监听change事件,在onchange函数中执行远程搜索,如果输入3个字符,则onchange执行3次,其实输入完3个字符后,执行1次就可以了,但我们无法得知什么时候输入结束,所以才用延迟执行,比如输入了第1个字符,则延迟300毫秒后执行,如果300毫秒内,输入了第2个字符,则取消第一个字符的查询,第2个字符延迟300毫秒执行,如果300毫原创 2022-09-28 19:28:26 · 8459 阅读 · 0 评论 -
javascript 模仿块级作用域
javascript没有块级作用域首先要明确一个问题,javascript没有块级作用域,并且有变量提升,具体参考这篇立刻执行函数有个经典的问题function returnFunArr(){ var arr=[]; for(var i=0;i<10;i++){ arr[i]=function(){ console....原创 2018-06-10 21:03:31 · 521 阅读 · 3 评论 -
javascript 面向对象编程之继承
构造函数、实例、原型之间的关系每个函数都有一个prototype属性指向原型;原型内部有个constructor属性指向函数;实例有个_proto_ 指向原型,因为浏览器差异,有的浏览器不对外开放此属性。用一幅图简单描述如下(自己画的先凑活看吧^_^)function Person(){}var p1 = new Person();console.log(Person==Perso...原创 2018-06-10 18:34:33 · 381 阅读 · 0 评论 -
javascript 面向对象编程之创建对象
如何更好的创建对象这部分属于JavaScript的面向对象编程,纯粹探讨如何更好的创建对象。在java中有类的概念,所以不存在这个问题, 但JavaScript不行,它没有类,但是可以利用一些技巧达到创建对象的目的。最原始的方式var person = new Object();person.name=&amp;quot;jun&amp;quot;;person.age=12;person.sayName=func...原创 2018-06-07 20:34:22 · 340 阅读 · 0 评论 -
js事件循环、window.setTimeout 延迟执行
当执行setTimeout的线程执行完毕后,才会执行setTimeout的逻辑,这是因为,js引擎会将setTimeout放入单独的队列,当前线程执行完毕后,再执行timeout队列。APIsetTimeout(func,ms,param1,param2);举例console.log("before....");setTimeout(function(){ conso...原创 2018-02-09 09:56:00 · 1635 阅读 · 1 评论 -
定制修改gulp-rev返回的rev-manifest.json文件
gulp的gulp-rev插件,用来产生源文件与目标文件的对照,创建的rev-manifest.json文件内容默认是绝对路径的,{ "static/css/animation.css": "static/css/animation-5209a80f8f.css", "static/css/basic.css": "static/css/basic-5017ce03eb.css"}如果想更原创 2018-02-08 11:39:06 · 2498 阅读 · 0 评论 -
javascript 正则表达式的组、全局、RegExp.exec()和string.match()区别
前言javascript的正则表达式,基本用法可以参考这个 ;在会了基本用法后,有几个概念一定要注意,组、全局、RegExp.exec和String.match的区别。全局全局是标志是否全局匹配,通俗点说就是后一次匹配从上次匹配处往后匹配。比如var reg = /.at/g;var str ="1at,2at,3at";console.log(reg.exec(str));console.l.........原创 2018-02-08 11:32:53 · 3450 阅读 · 0 评论 -
Access control allow origin 简单请求和复杂请求
错误信息:XMLHttpRequest cannot load http://web.image.myqcloud.com/photos/v2/10008653/bhpocket/0/?sign=4FcLKd5B8…p4SkFVUEJtZ1omZT0xNDQ0NzExMDE5JnQ9MTQ0NDcwNzQxOSZyPTEzMDMyMDgzOTAmdT0wJmY9.No 'Access-Co原创 2015-10-13 11:52:33 · 94828 阅读 · 3 评论 -
javascript window获取iframe、iframe获取window、document
前言日常开发中,经常用到在window中获取某个iframe,或者在iframe中获取当前window。这里做个总结,记在心里后,就不用每次都百度了。window获取iframe、iframe获取window、document首先需要说明的是,w3c已经不推荐使用frame,而推荐使用iframe,iframe也就是inline frame(行内frame),很明显它具有css的行内框特性,正是因为原创 2017-11-27 18:20:46 · 64147 阅读 · 5 评论 -
javascript for...in 和 for of区别
javascript 遍历对象和数组、 for...in、for...of原创 2016-05-23 10:12:51 · 1566 阅读 · 0 评论 -
js 生成条码和打印
需求条形码上边显示汉字,下边显示码值,如下图。 研究条形码规范对条形码是否能显示汉字,不确定,只能研究规范了。 研究得知,条形码也就是一维码,有很多规范,所有的规范都不支持汉字,所以在条形码上边拼个div来显示汉字,另外基于研究资料决定使用128规范,因为Code 128支持所有ASCII字符,也就是说,所有的ASCII字符都可以在二维码上显示出来,支持的字符最多、最全,当然它只支持ASCII所原创 2017-09-29 15:20:02 · 13501 阅读 · 2 评论 -
js 整数、手机号正则表达式
前言日常开发中,经常用到表达式判断,比如手机号、整数,以下做个总结。整数正则表达式var integerReg = /^[1-9]\d*$/;console.log(integerReg.test("10"))手机号正则表达式//如今,17号段的手机都有了,所以没必要check第二位,//为了兼容性考虑,可以认为1打头的,后边跟着10位数字的都是手机号var phoneReg = /^1\d原创 2017-05-15 15:53:12 · 1495 阅读 · 0 评论 -
jquery ajaxFileUpload 只有第一次管用
问题在使用jquery ajaxfileupload插件时,发现只有第一次上传好使,第二次及以后,都不管用了。 大体代码如下<style type="text/javascript" src="jquery.js"><style type="text/javascript" src="ajaxfileupload.js"><input type="file" id="myfile" ><scr原创 2017-03-31 20:56:44 · 1521 阅读 · 4 评论 -
javascript 正则表达式
创建方式javascript中的可以通过字面量或者RegExp创建正则表达式,掌握了这两种创建方式及不同、常用的test、exec方法,就满足日常需求了。字面量方式var reg=/pattern/flag;pattern是模式,正则表达式;flag是标志位,常用的有g、i;g是global全局匹配,i是insensitive,大小写不敏感。验证是否符合正则表达式,使用test方法比如,比配字符串中原创 2016-10-25 22:59:46 · 844 阅读 · 0 评论 -
前端优化,需要考虑的几个方面
最近在研究前端优化,在看了雅虎前端优化34条规则后,将最重要的几条加上自己的理解整理如下: 同域名限制。浏览器对同域名的并发请求数有限制,不同浏览器略有不同,但一般都在4-6之间。chrome一个域名同时最多6个请求,为了绕过这个限制,可以对静态资源可以单独设置域名。减少请求(minimize http requests),研究表明40%-60%的访问都是不带cache的访问,也就是初次访问,所原创 2016-12-04 20:39:15 · 1428 阅读 · 0 评论 -
javascript escape、encodeURI、encodeURIComponent
escape会替换所有的非法字符,0xff以内的为%xx,超出的按照%uxxxx,所以只能编码BMP(basic multi panel)基本平面。javascript已经不推荐使用此方法。encodeURI替换空格等等,url中的: // 都保留,汉字会编码为%xx%xx%xx,能编码超出BMP的字符encodeURIComponent替换所有非字母和数字字符,url中的: // ? 空格,原创 2016-11-24 20:27:38 · 424 阅读 · 0 评论 -
javascript 函数
介绍js中的函数跟其他语言的函数基本上一样,注意这里,我用了基本上一样,也就是说还是有不同一样的,最大的不同点就是函数是对象,既然是对象那么它就有对象、属性,这一点决定了js函数的特性,比如没有重载、对象方法、属性等。好了,开始js 函数之旅吧……创建函数创建函数有3种方式,分别为,声明式、表达式、构造方式。创建方法//声明式function f1(){}//表达式原创 2016-11-02 20:22:15 · 449 阅读 · 0 评论 -
mongo date 类型
mongo的date类型跟javascript的date类型一样,而javascript的date类型来源于java的java.util.Date,所以api基本一样,都有接收毫秒数的构造参数、获取毫秒数的getTime()。关于Date的用法有以下几个点构造方法无参构造new Date()用来创建date对象,注意,new Date()不同于Date(),Date()只是调用了方法,没有创建对象,原创 2016-10-12 21:08:55 · 12183 阅读 · 0 评论 -
form+iframe实现无刷新上传文件
原理:利用form的target属性,将action在iframe中打开,并接收返回结果,实现仿ajax的页面无刷新文件上传。正是action在iframe中打开,所以,页面才会无刷新。target属性值为iframe的name值form的target属性解释样例代码: 仿ajax页面无刷新上传文件 <form id="uploadFo原创 2015-10-20 10:39:15 · 2924 阅读 · 0 评论 -
javascript json
json字符串与对象的区别 json串是一个字符串,比如”{\”name\”:\”jun\”}” json对象是一个对象,比如{“name”:”jun”}eval 和JSON.parse(); eval(‘(‘+jsonstr+’)’),如果不加括号,eval认为{}是代码块,执行时出错。加上()会迫使 eval将括号内的表达式转换为对象JSON.stringify();ja原创 2016-05-13 08:42:23 · 543 阅读 · 0 评论 -
javascript var/function 变量提升
javascript不像java,c/c++会存在块级作用;在javascript中,没有块级作用域,并且会提升变量声明。function no_block(){ var i =1; console.log(j);//这里不会报错,而是输出undefined var j =2;//变量声明提升,但是赋值并不提升 console.log(i+j);}no_block(原创 2016-05-23 10:56:25 · 984 阅读 · 0 评论 -
javascript 访问对象属性
属性访问方法javascirpt访问属性值,使用点表示法和方括号表示法。点表示法点表示法,使用.属性名的方式访问属性值var person = {"name":"t-mac",age:40};console.log(person.name);t-mac方括号表示法使用方括号来访问对象属性,在使用方括号语法时,方括号中必须是字符串或变量。var person = {"name":"t-m原创 2016-05-23 10:19:13 · 428 阅读 · 0 评论 -
java对象转json, 数字精确出现丢失
java中的大数字比如18/19位的整数(long),转为json,输出到页面后,就出现精度丢失,如果数字再大些就会出现科学计数法。这两个问题都不是json工具包(比如Gson)的问题,而是由于js存储大数字丢失精度引起。原创 2015-08-30 22:43:08 · 9417 阅读 · 0 评论 -
js 数值 精确运算
声明基于IEEE754数值浮点表示法的数字在运算时,都会出现不精确的结果,不只js会这样,java也会这样。思路实现精确运算的思路,首先将小数转为整数,然后再做运算。具体函数/** * js精确运算的思路是转为整数,然后再做运算 *//** * float 加法 */ function floatAdd(arg1,arg2){ var r1,r2原创 2016-04-12 09:27:03 · 1038 阅读 · 0 评论