
JavaScript
qq_39985511
这个作者很懒,什么都没留下…
展开
-
编译器预编译与变量提升
先有鸡还是先有蛋? 直觉上会认为 JavaScript 代码在执行时是由上到下一行一行执行的。但实际上这并不完全正确,我们来看下面2个例子//例子1:a = 2;var a; console.log( a ); //2//例子2console.log(a); //undefinedvar a = 2;通过这2个例子,我来深入的了解一下。到底是声明(蛋)在前,...原创 2019-09-25 11:09:38 · 377 阅读 · 0 评论 -
数字分割符分割数字
1、需求:(整数部分3位一隔,小数部分保留2位)200 => 200.0020020020.20 => 200,200,20.202、实现一(直接上代码)function formatNum(value){ if (!value) return '0.00'; value = Number(value) let floatNum = value.t...原创 2019-01-18 18:23:43 · 3710 阅读 · 0 评论 -
javascript——forEach跳出循环
forEach定义:网上搜索说可以通过break或者return false来跳出循环,今天楼主测试了一下:1、break 非法的break语句;直接报错了!!!这是不可行了!!!2、return false return flase只是结束本次,但是并没有结束for循环,所以并没有什么用处。这是不可行的!!! 3、正确的做法我们无法通过正常的途径去结束...原创 2018-10-29 13:29:35 · 7726 阅读 · 0 评论 -
js的函数抖动和函数节流原理
转自:https://blog.youkuaiyun.com/crystal6918/article/details/62236730针对一些会频繁触发的事件如scroll、resize,如果正常绑定事件处理函数的话,有可能在很短的时间内多次连续触发事件,十分影响性能。因此针对这类事件要进行防抖动或者节流处理防抖动它的做法是限制下次函数调用之前必须等待的时间间隔。正确实现 debouncing...原创 2018-09-17 11:27:34 · 2091 阅读 · 2 评论 -
javascript中的滚动到顶部和Scroll有关的方法
转自:https://www.cnblogs.com/zxjwlh/p/6284330.html仅用于学习!!! 这块确实太乱了,被兼容搞的简直快要晕死,默默地总结下...与scroll相关的方法4个window对象下:scrollX、scrollY、scrollTo、scroll(作用和scrollTo一样)4个Element对象下:scrollWidth、scrollH...转载 2018-08-30 15:00:46 · 5413 阅读 · 0 评论 -
关于URL编码/javascript/js url 编码/url的三个js编码函数
转自:https://www.cnblogs.com/huzi007/p/6322278.html;这些URI方法encodeURI、encodeURIComponent()、decodeURI()、decodeURIComponent()代替了BOM的escape()和unescape()方法。URI方法更可取,因为它们对所有Unicode符号编码,而BOM方法只能对ASCII符号正确编码。...转载 2018-09-04 10:12:30 · 1219 阅读 · 0 评论 -
利用css绘制三条横线的菜单图标
今天在慕课网上学习padding属性时,老师利用padding,border,backgroud-clip等属性轻易的使用一个div绘制出了三条横线的菜单图标,像下图这样html代码很简单,就一句: <span style="font-family:Comic Sans MS;font-size:14px;"><div class="menu-icon"&g...转载 2018-08-07 15:30:22 · 11003 阅读 · 2 评论 -
不完美处理click和dblclick的事件冲突问题
情况描述 当某个元素,如:div,同时绑定了click事件和dblclick事件,而这两个事件又要处理相对独立的业务,也就是click的时候不能触发dblclick,dblclick的时候不能触发click。在实际测试中发现,当dblclick的时候,总会出现1次click。下文将要解决的就是这个问题。情况分析 首先我们要清楚click和dblclick的执行顺序,测试过程略,下面是测试结果:...转载 2018-06-01 17:13:08 · 1433 阅读 · 2 评论 -
正则表达式汇总
1.0-100之间的小数,保留2位小数/^(0|([1-9]\d?\.\d{1,2})?|[1-9]\d?|100)$/原创 2018-06-22 18:09:04 · 182 阅读 · 0 评论 -
js 报错(intermediate value)(...) is not a function
[javascript] view plain copy //通过函数构造器定义 function beverage_treat(){ } // 这里不用加分号 //通过函数表达式定义, 此时我们认为该函数是一个变量 var beverage_treat = function(){ }; // 这里一定要加分号,不然在后面紧跟一个如下形式的函数封装时会报错(intermediat...转载 2018-05-30 10:37:33 · 6831 阅读 · 0 评论 -
微任务,宏任务和Event-Loop
一段代码让你了解Event-Loopconsole.log(1);setTimeout(() => { console.log(2);}, 0);new Promise((resolve, reject) => { console.log(3); resolve();}).then(data => { console.log(4);...转载 2019-01-23 16:12:43 · 509 阅读 · 0 评论 -
如何实现一个 new
面试官问:能否模拟实现`JS`的`new`操作符me or you:木问题!!!一、进行分析new的过程,主要有以下几点1、创建一个新的对象2、把obj的__proto__指向fn的prototype,实现继承3、改变this的指向,执行构造函数、传递参数,fn.apply(obj,) 或者 fn.call()4、返回新的对象obj二、实现代码<script...原创 2019-02-19 11:18:36 · 5540 阅读 · 4 评论 -
链式调用的原理
在搬砖的过程中,可能会遇到很多的链式调用,最常见的那就是jquery中链式调用,如下图:$("p").css("color","red").height("100px");那么问题来了,它是怎么实现的呢?原理首先咱们先用js来模拟一下这个效果: class Person { constructor(name) { this.na...原创 2019-09-23 16:17:24 · 1017 阅读 · 2 评论 -
正则表达式匹配连续相同字符
今天楼主偶遇一道题,下面分享给大家/* 题目:找出字符串中连续出现最多的字符和个数 输入:'aaaavvvvabbbbbffff' 输出:{b: 5}*/那么该怎么做呢?重点在连续上/* 题目:找出字符串中连续出现最多的字符和个数 输入:'aaaavvvvabbbbbffff' 输出:{b: 5}*/var str = 'aaa...原创 2019-07-26 18:37:20 · 11059 阅读 · 0 评论 -
数组扁平化
今天看到了数组扁平化处理,犹记得之前面试被问到过,下面介绍一下数组扁平化处理的几种形式:题目要求: /* *将数组 arr = [1,2,3,4,[5,6,7,[8,9]]] 转化为 [1, 2, 3, 4, 5, 6, 7, 8, 9] */1、递归 var arr = [1,2,3,4,[5,6,7,[8,9]]]; //方法一:递归...原创 2019-07-15 14:47:29 · 225 阅读 · 0 评论 -
console.log(12.toString())为啥会报错呢?
先看2段代码1、let a = 12;console.log(a.toString()) //122、console.log(12.toString()); //Uncaught SyntaxError: Invalid or unexpected token这是为什么?搭眼一看都是一样的呀?是否有这个疑惑?接着往下看,下面来介绍一下: 在JavaScri...原创 2019-07-05 18:42:16 · 1370 阅读 · 0 评论 -
按钮点击触发的事件只生效一次
朋友的一个面试题如下:面试官问:写一个函数,使按钮点击触发的事件只生效一次???你: 。。。【往下看】方法1: /** 方法1: 通过设置全局变量来控制 */ var oBtn = document.getElementById('btn') var isClick = false; o...原创 2019-05-05 18:28:37 · 12844 阅读 · 1 评论 -
javascript基本排序算法
咱们在这说一下基本的排序算法吧!以下主要说到基础的三种排序【冒泡,选择,插入】,处理大量数据的【快排】先说一下原理:1、冒泡排序: 冒泡排序是因为使用这种排序算法排序时,数据值会像气泡一样从数组的一端漂浮到另一端。假设正在将一组数字按照升序排列,较大的值会浮动到数组的右侧,而较小的值则会浮动到数组的左侧。之所以会产生这种现象是因为算法会多次在数组中移动,比较相邻的数据...原创 2019-04-15 10:08:05 · 286 阅读 · 0 评论 -
类数组的push方法
面试官: 知道push么?XXX:知道!面试官:做做下面这个题吧。。。XXX: .... var obj = { '2': 3, '3': 4, length: 2, splice: Array.prototype.splice, push: A...原创 2019-04-01 09:47:03 · 2415 阅读 · 0 评论 -
移动端适配的基础知识
先上楼主的图首先,咱们需要了解以下几个专有名词和单位这里,我们先来辨析一下在适配的时候经常会遇到的一些名词、数值单位。首先,先来看一下物理像素。以iphone6为例,可知道:分辨率:1334pt x 750pt指的是屏幕上垂直有1334个物理像素,水平有750个物理像素。屏幕尺寸:4.7in注意英寸是长度单位,不是面积单位。4.7英寸指的是屏幕对角线的长度,1英寸等...原创 2019-02-26 18:41:57 · 336 阅读 · 0 评论 -
js经典闭包题
面试官:会闭包么?you:木问题!!!面试官:那么做做下面的题吧?you:。。。(一脸懵逼中...) //经典闭包 function fun(n, o) { console.log(o) return { fun: function(m) { ...原创 2019-02-20 16:43:12 · 385 阅读 · 0 评论 -
javascript中for循环里面套定时器,始终打印结束值原因
Javascript 中变量可以存放两种类型的值,一种为原始值(primitive value),如 Undefined, Null, Boolean, Number, String。这类值存放在栈内部,每赋值一次就创建一个新的拷贝。另一种为引用值(reference value),这类值存在堆内存中,只能通过引用赋值。举例说明:[javascript] view plain copyvar a ...转载 2018-05-28 19:36:06 · 2786 阅读 · 0 评论 -
复杂数组类型的深拷贝
1、无论是组数还是对象,都可以通过JSON.parse(JSON.stringify(obj/arr))进行深拷贝2、通过递归进行数组对象深拷贝 以下代码进行参考:3、数组深拷贝(es6的数组扩展符)4、对象的深拷贝(es9的对象扩展符) ...原创 2018-06-11 15:18:10 · 1082 阅读 · 0 评论 -
用js判断空对象的几种方法
1.将json对象转化为json字符串,再判断该字符串是否为"{}"var data = {};var b = (JSON.stringify(data) == "{}");alert(b);//true2.for in 循环判断var obj = {};var b = function() {for(var key in obj) {return fals原创 2018-01-31 11:36:18 · 243 阅读 · 0 评论 -
网页的粒子效果
之前在浏览博客的时候,发现了粒子效果,现在图如下:现把代码贴出来,供大家参考:*{margin:0;padding:0;}html,body{width:100%:height:100%;overflow:hidden;}var body = document.body;var oC = document.getElementBy原创 2018-01-23 11:44:11 · 1868 阅读 · 0 评论 -
H5 通过Ajax方式上传文件,使用FormData进行Ajax请求
通过传统的form表单提交的方式上传文件:Html代码 form id= "uploadForm" action= "http://localhost:8080/cfJAX_RS/rest/file/upload" method= "post" enctype ="multipart/form-data"> h1 >测试通过Rest接口上传文件 h转载 2018-01-05 20:43:45 · 577 阅读 · 0 评论 -
跨域——vue中的axios.post使用json数据传输,出现请求头字段内容类型是不被允许的情况的解决方案
如何解决出现AXIOS的Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.问题描述:由于restful接口需要在头部header传递两个字段:Content-Type: application/jsonAccess-Token: ...原创 2018-01-01 20:21:59 · 39369 阅读 · 2 评论 -
前端笔试题
原题来自: javascript-puzzlers(http://javascript-puzzlers.herokuapp.com/) 读者可以先去做一下感受感受. 当初笔者的成绩是 21/44… 当初笔者做这套题的时候不仅怀疑智商, 连人生都开始怀疑了…. 不过, 对于基础知识的理解是深入编程的前提. 让我们一起来看看这些变态题到底变态不变态吧! 第1题 ...转载 2017-12-12 11:15:25 · 293 阅读 · 0 评论 -
前端开发之功能封装大全
转自:https://segmentfault.com/a/1190000011966867前言作为战斗在业务一线的前端,要想少加班,就要想办法提高工作效率。这里提一个小点,我们在业务开发过程中,经常会重复用到日期格式化、url参数转对象、浏览器类型判断、节流函数等一类函数,这些工具类函数,基本上在每个项目都会用到,为避免不同项目多次复制粘贴的麻烦,我们可以统一转载 2017-12-09 20:49:32 · 2738 阅读 · 0 评论 -
JavaScript中对Promise对象的理解
注意单词对应的翻译,有助于理解整个模式promise: 承诺pending: 待定settled: 定了resolve(d): (已)解决reject(ed): (已)拒绝onFulfilled: 已履行(事件)onRejected: 已拒绝(事件)then: 然后,接下来catch:转载 2017-09-20 19:28:47 · 546 阅读 · 0 评论 -
经典面试智力题
智力题,每个正式的笔试、面试都会出,而且在面大企业的时候必然会问到,笔者曾在很多面试中,都被问到过,不过答得都不是很好,因为时间很短,加上我们有时候过于紧张,所以做出这类问题,还是有一定的难度,从这篇文章中我会总结一些常见的智力题,希望各位读者能在本章所列的题中找出做这类题的方法,克服面试中的难题!1、农民分金条问题题目:你让农民为你工作7天,给他的回报是一根金条。金条转载 2017-09-20 21:17:34 · 2184 阅读 · 0 评论 -
javascript 简易时钟
通过css的旋转和Date方法获取时间背景图片如下:时针分针秒针 #clock { width: 600px; height: 600px; margin:50px auto; background: url(images/clock1_03.j原创 2017-09-22 20:47:22 · 500 阅读 · 0 评论 -
JS去除字符串左右两端的空格
转自:https://www.cnblogs.com/fanyf/p/3785387.html仅用于学习交流去除字符串左右两端的空格,在vbscript里面可以轻松地使用 trim、ltrim 或 rtrim,但在js中却没有这3个内置方法,需要手工编写。下面的实现方法是用到了正则表达式,效率不错,并把这三个方法加入String对象的内置方法中去。 写成类的方转载 2018-01-31 15:57:50 · 3150 阅读 · 0 评论 -
js离开页面执行函数 onbeforeunload与onunload事件
转自:https://www.cnblogs.com/xianyulaodi/p/5035171.html仅用于学习在最近的项目中,需要做到一个时间,就是用户离开页面的时候,我需要缓存页面其中一部分的内容,但是我不需要用户刷新的时候也缓存,我只希望在我用户离开的时候执行这个函数。百度之,有onbeforeunload与onunload这两个事件,但是onbefore转载 2018-01-26 13:14:27 · 2476 阅读 · 0 评论 -
jquery 获取input checkbox checked属性
如果使用jquery,应使用prop方法来获取和设置checked属性1.通过prop方法获取checked属性,获取的checked返回值为boolean,选中为true,否则为flase1234567<input type="checkbox" id="selectAll" onclick="checkAll()">全选function checkAll(){var checked...转载 2018-05-08 17:48:16 · 4067 阅读 · 0 评论 -
jquery扩展方法的两种形式
jQuery.extend:Query本身的扩展方法jQuery.fn.extent(Object) jQuery 所选对象扩展方法jQuery.extend我们先把jQuery看成了一个类,这样好理解一些。 jQuery.extend(),是扩展的jQuery这个类。 比如:猴子这个类,会说话,会爬树。现在我们用jQuery.extend()给它增加一个本领,让它也会敲代码。如下代码$.exte...转载 2018-04-26 09:33:51 · 5413 阅读 · 2 评论 -
原生js 封装ajax
这是自己封装的ajax ,分享一下:直接上代码文件夹index.htmlajax.js特别注意:在ie9中需要设置进行安全性设置gitHub地址:https://github.com/GuoYuFu123/js-ajax.git原创 2018-04-25 17:21:59 · 1022 阅读 · 0 评论 -
ajax传值类型和方法
只有两种传值方式:GET 和 POST方式GET:xmlhttp = new XMLHttpRequest();//异步执行函数xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElemen...转载 2018-04-25 17:12:39 · 1282 阅读 · 0 评论 -
JS日期格式化转换方法
1. 将日期转换为指定的格式:比如转换成 年月日时分秒 这种格式:yyyy-MM-dd hh:mm:ss 或者 yyyy-MM-dd。当然是网上的方法,只是总结下。可以为Date原型添加如下的方法:Date.prototype.format = function(fmt) { var o = { "M+" : this.getMonth()+1, ...转载 2018-04-21 17:31:21 · 200041 阅读 · 23 评论 -
在原生js中的,table表格,display:block之后,样式混乱
display:blockdisplay:block是可以把非块级元素强制转换为块级元素显示,如内嵌元素span,原来不支持设置宽高,宽度是由内容撑开的;display:table-rowtable-row:指定对象作为表格行,类同于html标签<tr>问题如下当表格为多列的情况下,属性为"display:block"行的内容宽度仅与第一列宽度相同,也就是说无论你使colspan的属性...转载 2018-04-24 11:19:47 · 5586 阅读 · 2 评论