js/jq
文章平均质量分 82
zwkkkk1
这个作者很懒,什么都没留下…
展开
-
原生 js 获取 dom 元素 css 样式的四种方法及对比
在动态操作 dom 元素时,如果我们要获取或设置一个元素的宽高、top、left 等样式时,jq 中的 .css 是常见的方法,那么在原生 js 中呢?首先想到的就是 element.style 方法,这个方法虽然可以获取也可以设置 dom 元素的样式,但也很有局限性,下面总结一下原生 js 获取 dom 元素样式的几种方法与区别~1. HTMLElement.stylemdn 传送门HTM...转载 2019-11-21 18:14:57 · 9009 阅读 · 0 评论 -
JavaScript 的 call()、apply()、bind() 详解
JavaScript 的 call()、apply()、bind() 详解 在 JavaScript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向。 究竟怎么来改变 this 指向,以及怎么应用,我们先来看下面这个问题。问题var a = "global scope!"...原创 2018-04-20 14:11:42 · 396 阅读 · 0 评论 -
记一道经典的 JavaScript 面试题
最近,在温习前端知识时,看到一道非常好的 JavaScript 面试题,这里做个分享,并附上我的分析。问题function Foo() { getName = function () { alert (1); }; return this;}Foo.getName = function () { alert (2);};Foo.prototype.getNam...原创 2018-04-20 18:57:59 · 1986 阅读 · 0 评论 -
JavaScript 实现四种常见排序算法
介绍4种常见排序算法,将 JavaScript 的实现过程做一个分享:冒泡排序、选择排序、插入排序、快速排序。此处首先定义一个 swap 函数,实现了数组中元素调换的功能,在后面的排序算法都是直接调用这个函数的~//将数组 arr 中下标为 i 和 j 调换位置function swap(arr, i, j) { var temp = arr[j]; arr[j] = a...原创 2018-05-09 17:49:37 · 356 阅读 · 0 评论 -
js 字符串计算各字母出现次数
最近,做到这样的一道编程题,这里做个总结分享。 问题是:使用 JS 编码,完成一个函数,函数功能是输入字符串,计算各字母出现的次数,以对象的形式输出,例如输入“xyzzyxyz”,得到 {x: 2, y: 3, z: 3}。思路一创建一个目标结果对象(即最后函数返回值,代码中为 result);循环遍历字符串(传入的参数, str),结果对象(result)里存在该字母,...原创 2018-04-28 16:52:50 · 10729 阅读 · 1 评论 -
理解Node类型——不应被忽视的 nodeType、nodeName、nodeValue
Node 类型 DOM1级定义了 Node 接口,该接口将由 DOM 中的所有节点类型实现。这个 Node 接口在 JavaScript 中是作为 Node 类型实现的;除了 IE 之外,在其他所有浏览器中都可以访问到这个类型。JavaScript 中的所有节点类型都继承自 Node 类型,因此所有节点类型都共享着相同的基本属性和方法。 这篇讲讲 Node 类型常会被忽视的三个属性...原创 2018-05-07 18:57:21 · 16992 阅读 · 4 评论 -
JavaScript 9种数组去重及性能问题
最近在面试的过程中,碰到了如何在 JavaScript 中实现数组去重的功能,当时面试官说不用考虑性能什么的,所以我想到的思路是这样的:新建一个数组;每次遇到一个字符,进行判定;如果在新的数组中没有这个字符,就插入到这个新数组中;如果有这个字符,开始读取下一个字符;重复步骤 2 - 4,直到数组遍历完了,最后返回这个新数组。 回来之后,查了查 JavaScript 中几种...原创 2018-05-16 15:15:38 · 2716 阅读 · 1 评论 -
浅析 JavaScript 中的深拷贝
js 中的深浅拷贝是一个非常重要的知识点,因为在开发过程经常会遇到问题,特别是深拷贝。 至于什么是浅拷贝,什么是深拷贝这里不做解释,此外数组的浅拷贝可以使用 slice()、concat()函数,对象可以使用 Object.assign(),这里也不过多介绍,再开发真正会遇到的问题在于深拷贝,下面我会列出几个方法以及各自的缺陷吧。 深拷贝就是指完全的拷贝一个对象,即使嵌套了对象,...原创 2018-08-27 10:00:59 · 349 阅读 · 0 评论 -
详解 JQuery 中的 attr() 和 prop()
之前在对dom的属性进行操作都是使用 attr() 这个方法,在最近的项目中才了解 jq 在 1.6 版本新出的 prop() 方法。 只看手册对两者的定义,是令人有些懵逼的,因为两者的定义是真的很像:prop()Get the value of a property for the first element in the set of matched elements or...原创 2018-08-31 17:29:28 · 466 阅读 · 0 评论 -
函数节流与函数去抖的简单实现
对于节流、去抖的定义:The Difference Between Throttling and Debouncing(概念定义)Debouncing and Throttling Explained Through Examples(一些复杂demo的测试)这里引用上面文章对去抖和节流的定义:节流(Throttling):“每 100ms 函数最多只执行一次”Throttling...原创 2018-10-19 16:28:13 · 471 阅读 · 0 评论 -
axios 全局设置 token 信息
在上篇中我们学习了什么是 token,本篇介绍前端如何全局设置每次请求都带上从后端获取来的 token当然不全局设置也可以,那只能在每次请求都去 cookie、localStorage 取一次 token,使得代码非常冗余方法1token 通常都是在注册、登录后,从后端接口取到的,所以我们只需要在前端调用注册、登录请求时修改一下就行了,下面以登录接口为例export const login...原创 2019-04-11 16:12:38 · 3901 阅读 · 1 评论 -
this 的4条绑定规则及优先级
this 关键字是 JavaScript 最复杂的机制之一,对学习 web 前端而言,this 的学习至关重要。 总的来说,this 是在执行时进行绑定的,并不是在定义时绑定,它的上下文取决于函数调用时的各种条件。下面,我来介绍下 JavaScript 中的4种常见绑定规则。1. 默认绑定var a = "global";function foo() { var a...原创 2018-04-19 17:39:57 · 1229 阅读 · 2 评论 -
从面试题看 String() 与 new String() 的差异
为了扎实自己的基础,最近在看前端面试题,我会将一些有意思的面试题拿出来,附上我的理解做个分享~ ps:当然欢迎交流,如果说的不对的希望能够指出,大家一起进步!题目function showCase(value) { switch(value) { case 'A': console.log('Case A'); break; ...原创 2018-04-07 13:18:05 · 367 阅读 · 0 评论 -
JavaScript arguments对象详解
arguments 是 JavaScript 函数体中的一个内置对象,虽然经常被人所忽视,但实际上非常重要。所有主流的 JavaScript 函数库都利用了 arguments 对象。arguments 对象的属性 对于一个对象而言,我们先来看一看arguments对象的三个属性的作用,然后分别来聊聊如何运用这三个属性 1.callee:指向当前函数的引用 2.lengt...原创 2018-03-30 15:51:21 · 614 阅读 · 0 评论 -
JavaScript 的执行环境
执行环境(execution context,有时也被叫做执行上下文)是 JavaScript 中最重要而且是最基本的一部分内容。在你搞清楚执行环境后,会对你弄清楚作用域链、变量提升、this这些核心概念起着决定性的作用。 希望你能在读完本文后,能够弄清楚解释器做了什么,为什么函数和变量能在声明前使用以及他们的值是何时被决定的。执行环境(EC) 执行环境定义了变量...原创 2018-03-31 10:05:33 · 2274 阅读 · 13 评论 -
从 JavaScript 的作用域链到闭包
分享一篇关于作用域链的文章,加上之前对执行环境的理解,很快就理解了作用域链和闭包的相关内容! 原文地址:http://www.cnblogs.com/wilber2013/p/4909459.html上一篇文章中介绍了Execution Context中的三个重要部分:VO/AO,scope chain和this,并详细的介绍了VO/AO在JavaScript代码执行中的表现。...转载 2018-03-31 11:59:43 · 1167 阅读 · 0 评论 -
JavaScript中的LHS和RHS查询
问题来源于《你不知道的JavaScript(上卷)》,文章部分论述截自原书。简述编译原理 JavaScript通常会被归类为“动态”或“解释执行”语言,但事实上它是一门编译语言。但与传统的编译语言不同,它不是提前编译的,编译结果也不能在分布式系统上进行移植。 在传统编译语言的流程中,程序中的一段源代码在执行前会经历三个步骤,统称为“编译”。 1. 分词 / ...原创 2018-03-28 11:53:32 · 9447 阅读 · 3 评论 -
JavaScript中 with的用法
说起js中的with关键字,很多小伙伴们的第一印象可能就是with关键字的作用在于改变作用域,然后最关键的一点是不推荐使用with关键字。听到不推荐with关键字后,我们很多人都会忽略掉with关键字,认为不要去管它用它就可以了。但是有时候,我们在看一些代码或者面试题的时候,其中会有with关键字的相关问题,很多坑是你没接触过的,所以还是有必要说说with这一个关键字。 with的基本用...原创 2018-03-28 12:50:09 · 65242 阅读 · 21 评论 -
TypeError 和 ReferenceError
ECAM-262中定义了7种错误类型,Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError。 其中 TypeError 和 ReferenceError 是经常会碰到的错误类型,在这里我们进行一个比较。差异在哪里TypeError例如:var a;console.log(a....原创 2018-03-28 13:25:57 · 2183 阅读 · 0 评论 -
JavaScript 中的隐形类型转换
为了扎实自己的基础,最近在看前端面试题,我会将一些有意思的面试题拿出来,附上我的理解做个分享~ ps:当然欢迎交流,如果说的不对的希望能够指出,大家一起进步!问题程序1:if([]) { console.log("true");//true}程序2:console.log([] == false);//true 在程序1中if([])判定为真,打...原创 2018-04-11 10:20:01 · 1299 阅读 · 0 评论 -
JavaScript中的变量提升和函数提升
变量的作用域 在理解变量提升和函数提升之前,我们需要先理解好JavaScript的作用域的奇特之处。没有块级作用域 和C、C++、以及Java不同,在ES6之前,JavaScript没有块级作用域,只有全局作用域和函数作用域。 注:其实从 ES3 发布以来,JavaScript 就有了块级作用域(with 和 catch分句),而 ES6 引入了 let我们首...原创 2018-03-29 14:31:26 · 5896 阅读 · 8 评论 -
javascript的垃圾回收机制与内存管理
原文转自:你不知道的JavaScript–Item28 垃圾回收机制与内存管理垃圾回收机制—GC Javascript具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存。 原理:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存。 JavaScript垃圾回收的机制很简单:找出不再使...转载 2018-03-29 17:03:56 · 379 阅读 · 0 评论 -
Ajax 的几种实现方式
一、什么是 AjaxAjax:Asynchronous javascript and xml,实现了客户端与服务器进行数据交流过程同时是异步发送请求。Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。 使用技术的好处是:不用页面刷新,并且在等待页面传输数据的同时可以进行其他操作。二、原生 JS 实现 Ajax这里有一个实现的套路...原创 2018-04-12 19:33:10 · 9061 阅读 · 0 评论 -
Ajax 重复提交解决方案
一、问题产生原因 由于 AJjax 提交数据为异步提交,所以当我们点击提交按钮是通过 xmlhttprequest 对象向服务器发送异步请求,发送请求需要有处理时间,我们第一次点击的请求尚未完成,就有接二连三的又提交了几次,同时后来发送的请求同时也被发送到后台处理了,故造成了 Ajax 的重复提交问题。二、解决方案1. 改变按钮可点击状态 原理很简单,就是在触发...原创 2018-04-12 19:59:05 · 1072 阅读 · 0 评论 -
JavaScript 实现简单的拖拽效果
之前一直对js中常用坐标属性不是很熟,特意花了一个下午的时间研究,并写了一个实现元素拖动的函数,在这边分享一下。(如果有不对的地方,还请批评指正~)先介绍一下实现元素拖动需要的坐标属性。offsetLeft、offsetTop 和 clientX、clientYoffsetLeft \ offsetTop 用在dom节点中,可以返回当前元素距离某个父辈元素左边缘的距离原创 2017-10-02 09:48:06 · 5441 阅读 · 0 评论