
JavaScript
文章平均质量分 66
杜小白Zero
这个作者很懒,什么都没留下…
展开
-
JavaScript数组函数解析
1、创建和初始化数组 (1)使用new关键字 var daysOfWeek = new Array() var daysOfWeek = new Array(7) var daysOfWeek = new Array('Sunday' , 'Monday', 'Tuesday', 'Wednesday', 'Thursday'); (2)用[]形式 var...原创 2018-03-08 16:17:17 · 340 阅读 · 0 评论 -
剑指offer——javascript编程
1、一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。//indexOf()和lastIndexOf()这两个位置方法,indexOf()从头开始向后查找,并返回查找元素的位置,若没有//则返回-1,lastIndexOf()从后往前查找,同样返回查找元素在数组中的位置。 function FindNumsAppearOnce(array)...原创 2018-07-24 10:24:10 · 1107 阅读 · 0 评论 -
一个闭包的小例子
首先先解释一下作用域的概念: 在JavaScript中,只有函数具有作用域。也就是说,在一个函数内部声明的变量在函数外部无法访问。定义在一个函数中的变量在改函数的内嵌函数中是可以访问的。下面先举一个作用域的例子:function foo(){ var a = 10; function bar(){ a *= 2; return...原创 2018-07-31 14:43:14 · 2937 阅读 · 0 评论 -
JavaScript中undefined和null的用法与区别
一、undefined undefined类型只有一个值,就是undefined。当声明的变量未初始化时,该变量的默认值是undefined。所以一般地,undefined表示变量没有初始化。var test;//undefinedconsole.log(test == undefined);//truevar test = undefined;//undefined对于尚未声...原创 2018-08-15 18:12:56 · 679 阅读 · 0 评论 -
JavaScript单线程及setTimeOut异步的应用
一、js同步与异步在JavaScript中任务有两种,一种是同步任务,一种是异步任务。同步任务:各个任务按照文档定义的顺序一一推入"执行栈"中,当前一个任务执行完毕,才会开始执行下一个任务。异步任务:各个任务推入"任务队列"中,只有在当前的所有同步任务执行完毕,才会将队列中的任务"出队"执行。(注:这里的异步任务并不一定是按照文档定义的顺序推入队列中)任务队列(event loop...原创 2018-09-19 11:12:31 · 367 阅读 · 0 评论 -
JavaScript精确判断对象类型——Object.prototype.toString
面试中经常会问到js的数据类型有哪些,以及如何判断数据类型的问题,对于基本数据类型undefined,string,boolean,number,symbol使用最常用的typeof即可判断,但是对于null,array,{}使用typeof就会统一返回object字符串,这样就不能准确的判断。怎么解决的呢,来看下面:首先使用typeof来判断基本的数据类型: //基本数据类型:...原创 2018-11-01 20:58:52 · 2199 阅读 · 0 评论 -
JavaScript的new操作做了什么?
今天在知乎上,看到一位大神这样解释new的操作,很详细,通俗易懂,前端面试中也会涉及到这方面的问题,所以分享来大家一起学习学习,膜拜大神的思维,很赞!今天我从「省代码」的角度来讲 new。---------------------------想象我们在制作一个策略类战争游戏,玩家可以操作一堆士兵攻击敌方。我们着重来研究一下这个游戏里面的「制造士兵」环节。一个士兵的在计算...转载 2018-11-02 09:35:56 · 2145 阅读 · 0 评论 -
JavaScript中this的四种调用模式
this,即函数执行时的上下文环境,通常有四种调用模式:函数调用模式,方法调用模式,构造器调用模式,call/apply调用模式。函数调用模式就是普通函数的调用方式,此时this被绑定到window对象。最普通的函数调用function fn1(){ console.log(this);//window}fn1()函数嵌套function fn1(){...原创 2018-11-02 10:56:55 · 1059 阅读 · 0 评论 -
javascript中数组和对象的深拷贝实现方法
在js中,数组和对象的复制如果使用=号来进行复制,那只是浅拷贝。如下图演示: 如上,arr的修改,会影响arr2的值,这显然在绝大多数情况下,并不是我们所需要的结果。一、数组的深拷贝1.for 循环实现数组的深拷贝for循环是非常好用的。如果不知道高级方法,通过for循环能够完成我们大多数的需求。var arr = [1,2,3,4,5];var arr2 = ...原创 2018-11-02 16:26:31 · 698 阅读 · 0 评论 -
call、apply、bind的应用与区别
call、apply、bind的作用是改变函数运行时this的指向,有关this的用法,可阅读上一篇文章JavaScript中this的四种调用模式。call call 方法第一个参数是要绑定给this的值,后面传入的是一个参数列表。当第一个参数为null、undefined的时候,默认指向window。var arr = [1, 2, 3, 89, 46];var ...原创 2018-11-02 15:37:26 · 568 阅读 · 0 评论 -
JavaScript中的深拷贝和浅拷贝
在说深拷贝与浅拷贝前,我们先看两个简单的案例://案例1var num1 = 1, num2 = num1;console.log(num1) //1console.log(num2) //1num2 = 2; //修改num2console.log(num1) //1console.log(num2) //2//案例2var obj1 = {x: 1, y: 2}, obj2 = obj1;co...原创 2018-05-26 21:10:59 · 253 阅读 · 0 评论 -
JS中哪些操作会造成内存泄露?
内存泄漏:指一块被分配的内存既不能使用,又不能回收,直到浏览器进程结束。1、JS的回收机制JavaScript垃圾回收的机制很简单:找出不再使用的变量,然后释放掉其占用的内存,但是这个过程不是实时的,因为其开销比较大,所以垃圾回收系统(GC)会按照固定的时间间隔,周期性的执行。到底哪个变量是没有用的?所以垃圾收集器必须跟踪到底哪个变量没用,对于不再有用的变量打上标记,以备将来收回其内存。用于标记的...转载 2018-05-26 18:56:16 · 2964 阅读 · 0 评论 -
JavaScript保留字与关键字
一、关键字breakcasecatchcontinuedefaultdeletedoelsefinallyforfunctionifininstanceofnewreturnswitchthisthrowtrytypeofvarvoidwhilewith二、保留字abstractbooleanbytecharclassconstdebuggerdoubleenumexportextendsfina...原创 2018-03-14 10:21:45 · 288 阅读 · 0 评论 -
深度剖析JavaScript正则表达式
正则表达式(regular expression)是一个描述字符模式的对象,可以使用正则表达式进行强大的模式匹配和文本检索与替换功能。1、正则表达式的定义可以使用两种形式定义一个正则表达式使用RegExp构造函数var regx = new RegExp('xyz','i');直接使用正则表达式var regx = /xyz/i;2、正则表达式的字符类字符匹配[....]方括号内的任意字符[^....原创 2018-03-28 16:48:11 · 350 阅读 · 0 评论 -
call与apply方法的异同
【基本作用】想要深入了解 call() 和 apply() 这两个方法,那么必须要先知道他们的基本作用:改变对象的执行上下文什么是执行上下文?我们在写一个方法的时候,总是会用到一个关键字this,而this的指向就是我们这里所说的执行上下文(执行环境)首先我们要知道,this指向的永远是调用该方法的对象,如何证明this的指向就是当前对象呢?看下面这段代码:function func () { ...转载 2018-04-12 20:05:55 · 209 阅读 · 0 评论 -
大话正则表达式
之前在《JavaScript权威指南》和《JavaScript高级程序设计》中看到过有关正则表达式的讲解,但是都半知半解,真正到用的时候又是不知道从何开始,很大一部分原因还是自己实践的少,今天看完了《正则表达式必知必会》,觉得讲的挺好,浅显易懂,每种表达都有相应的例子说明,适合初学者学习,现在和大家分享一下:一、什么是正则表达式?正则表达式:简单地说,就是一些用来匹配和处理文本的字符串。正则表达式...原创 2018-04-23 17:16:36 · 336 阅读 · 0 评论 -
详细解读JavaScript变量、作用域链和垃圾回收机制
一、基本类型与引用类型的区别1、基本类型和引用类型JavaScript中有两种不同的数据类型:基本类型和引用类型。基本数据类型有:Undefined、Null、Boolean、String和Number。存储在栈(stack)中的简单数据段,它们的值直接存储在变量访问的位置,即按值访问。引用类型有:Object、Function、Array。存储在堆(heap)中的对象,存储在变量处的值是一个指针...原创 2018-04-24 11:22:51 · 472 阅读 · 0 评论 -
初探闭包
一、什么是闭包?闭包是能访问其他函数作用域的函数。分析一下这句话就是:1、闭包是一个函数;2、闭包不仅能访问自己的作用域,还可以访问其他函数的作用域。二、怎么创建闭包?只要在一个函数中再定义一个函数,这个内部函数就是闭包。注意:只要满足一个函数在另一个函数的内部的条件,这个内部函数就是闭包,不管这个内部函数是以怎样的形式存在于外层函数中的。下面举几个例子:形式一:function father (...原创 2018-04-24 16:48:35 · 219 阅读 · 0 评论 -
浅析JavaScript事件捕获与事件冒泡
一、什么是事件流?事件,是文档或浏览器窗口中发生的一些特定的交互瞬间。事件流,描述的是页面中接收事件的顺序。一个事件被触发后,一般会有三个不同的阶段:捕获阶段、目标阶段和冒泡阶段。捕获阶段:从文档的根节点开始流到目标节点。——由外到内目标阶段:当到达目标节点时,进入目标阶段。——由内到外冒泡阶段:冒泡正好跟捕获的方向相反,它会沿着捕获的路径往回走,直至根节点。 1、一个完整的JS事件流是从w...原创 2018-05-02 17:11:28 · 265 阅读 · 0 评论 -
JavaScript实现用户登录验证进阶篇
最近刷到有关实现简单的用户登录验证的前端题,由于平时基础实践较少,大多使用框架,特总结此博客:一、先来看一段简单的用户登录验证:body{ text-align: center;}#content{ /*水平居中外盒子*/ display: inline-block; margin-top: 200px;}#login{ /*登录模块水平垂直居中*...原创 2018-05-08 10:25:25 · 4815 阅读 · 1 评论 -
this的值到底是什么?
首先说明本篇是我在知乎上看到的一位大神对js中this的解读,讲的挺清楚的,拿来保存和大家分享一下~~原谅我的转载 你可能遇到过这样的 JS 面试题:var obj = { foo: function(){ console.log(this); }}var bar = obj.foo;obj.foo(); // 打印出的 this 是 objbar...转载 2018-11-05 11:27:57 · 427 阅读 · 0 评论