![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
文章平均质量分 62
初漾
编程使我快乐,越研究越嗨皮
展开
-
20171026笔试题
三、1.function verify(input) { var len = input.length; console.log(len); var reg = /^([^.]+)([a-zA-Z0-9.])*$/g; if (len >= 2 && len <= 20) { if (reg.test(input)) { return true; }原创 2017-10-26 11:03:08 · 797 阅读 · 0 评论 -
cookie和session
转自:http://blog.csdn.net/fangaoxin/article/details/6952954/转载 2017-10-06 22:00:36 · 210 阅读 · 0 评论 -
面试题:null == undefined ?以及object.is()区别
前言:一、相等(==)和不相等(!=),这两个操作符都会先转换操作数(通常称为强制转型),然后再比较它们的相等性。在转换不同数据类型时,相等和不相等操作符遵循以下基本规则:(笔试题常考) 1.如果有一个操作数是布尔值,则在比较相等性之前现将其转换为数值-false转换为0,true转换为1; 2.如果有一个操作数是字符串,另一个操作数是数值,在比较相等性之前先将字符串转换为数值; 3.如果一个转载 2017-08-24 20:54:18 · 4244 阅读 · 0 评论 -
详解js闭包
转自:详解js闭包闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。闭包的特性闭包有三个特性:1.函数嵌套函数2.函数内部可以引用外部的参数和变量3.参数和变量不会被垃圾回收机制回收闭包的定义及其优缺点闭包 是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量闭转载 2017-07-23 15:02:19 · 198 阅读 · 0 评论 -
js中数组常用的API
第一组:操作方法 1.concat():基于当前数组,创建一个新的数组,并返回这个新数组,不会改变原数组;var color = ["red","green","blue"];var colors2 = color.concat("yellow",["black","brown"]);2.slice():可以接受一个或两个参数,要返回项的起始和结束位置,返回所截取数组的项,但是不包括结束位置的项原创 2017-09-03 09:33:08 · 5689 阅读 · 0 评论 -
正则表达式各种方法总结
正则就是用来设置规则,来完成我们需求的一些操作的,比如登录验证啦,搜索指定的东西啦等。定义正则: 1 var re = new RegExp(“a”); //RegExp对象。参数就是我们想要制定的规则。有一种情况必须用这种方式,下面会提到。 2 var re = /a/; // 简写方法 推荐使用 性能更好 不能为空 不然以为是注释 ,正则的常用方法 1 test() :在字原创 2017-08-02 21:48:02 · 3987 阅读 · 0 评论 -
js中__proto__和prototype的区别和关系?
正好这段时间在重新看这部分,写一篇回答来梳理一下吧。 proto(隐式原型)与prototype(显式原型) 1.是什么 显式原型 explicit prototype property:每一个函数在创建之后都会拥有一个名为prototype的属性,这个属性指向函数的原型对象。Note:通过Function.prototype.bind方法构造出来的函数是个例外,它没有prototype属性转载 2017-09-23 09:22:53 · 515 阅读 · 0 评论 -
js对象的深拷贝和浅拷贝
为啥要用深拷贝?在很多情况下,我们都需要给变量赋值,给内存地址赋值,但是在赋引用类型值的时候,只是共享同一个内存区域,导致赋值的时候,还跟之前的值保持一致性。看一个具体的例子// 给test赋值了一个对象var test = { a: 'a', b: 'b'};// 将test赋值给test2// 此时test和test2是共享了同一块内存对象,这也就是浅拷贝var test转载 2017-08-05 11:06:42 · 367 阅读 · 0 评论 -
JavaScript 中 4 种常见的内存泄露陷阱
了解 JavaScript 的内存泄露和解决方式!在这篇文章中我们将要探索客户端 JavaScript 代码中常见的一些内存泄漏的情况,并且学习如何使用 Chrome 的开发工具来发现他们。读一读吧!介绍内存泄露是每个开发者最终都不得不面对的问题。即便使用自动内存管理的语言,你还是会碰到一些内存泄漏的情况。内存泄露会导致一系列问题,比如:运行缓慢,崩溃,高延迟,甚至一些与其他应用相关的问题。什么是内原创 2017-08-24 21:44:50 · 1593 阅读 · 0 评论 -
事件冒泡和事件捕获
经过测试,当给目标元素均添加冒泡和捕获时,目标元素的事件触发顺序根据添加冒泡和捕获的顺序,而上级元素事件还是在捕获阶段触发。 当给根元素均添加冒泡和捕获时,目标元素的事件触发顺序根据添加冒泡和捕获的顺序,而目标元素是在捕获阶段触发。参考:http://www.cnblogs.com/wanliyuan/p/5718180.html原创 2017-09-04 08:39:52 · 229 阅读 · 0 评论 -
高性能JavaScript DOM编程
我们知道,DOM是用于操作XML和HTML文档的应用程序接口,用脚本进行DOM操作的代价很昂贵。有个贴切的比喻,把DOM和JavaScript(这里指ECMScript)各自想象为一个岛屿,它们之间用收费桥梁连接,ECMAScript每次访问DOM,都要途径这座桥,并交纳“过桥费”,访问DOM的次数越多,费用也就越高。因此,推荐的做法是尽量减少过桥的次数,努力待在ECMAScript岛上。我们不可能转载 2017-08-06 20:55:16 · 262 阅读 · 0 评论 -
谈谈异步编程
目前需求中涉及到大量的异步操作,实际的页面越来越倾向于单页面应用。以后可以会使用backbone、angular、knockout等框架,但是关于异步编程的问题是首先需要面对的问题。随着node的兴起,异步编程成为一个非常热的话题。经过一段时间的学习和实践,对异步编程的一些细节进行总结。1.异步编程的分类解决异步问题方法大致包括:直接回调、pub/sub模式(事件模式)、异步库控制库(例如async转载 2017-08-06 11:33:16 · 412 阅读 · 0 评论 -
JavaScript定时器与执行机制解析
从JS执行机制说起浏览器(或者说JS引擎)执行JS的机制是基于事件循环。由于JS是单线程,所以同一时间只能执行一个任务,其他任务就得排队,后续任务必须等到前一个任务结束才能开始执行。为了避免因为某些长时间任务造成的无意义等待,JS引入了异步的概念,用另一个线程来管理异步任务。同步任务直接在主线程队列中顺序执行,而异步任务会进入另一个任务队列,不会阻塞主线程。等到主线程队列空了(执行完了)的时候,就会转载 2017-08-06 11:15:51 · 1638 阅读 · 0 评论 -
从setTimeout说事件循环模型
作为一个从其他编程语言(C#/Java)转到Javascript的开发人员,在学习Javascript过程中,setTimeout()方法的运行原理是我遇到的一个不太好理解的部分,本文尝试结合其他编程语言的实现,从setTimeout说事件循环模型1.从setTimeout说起setTimeout()方法不是ecmascript规范定义的内容,而是属于BOM提供的功能。查看w3school对setT转载 2017-08-06 09:30:05 · 622 阅读 · 1 评论 -
setTimeout()和setInterval()区别
注意:在内存方面区别setTimeout在时间间隔后将定时器插入循环队列,若前面有执行时间较长的程序,则可能推迟执行。 setInterval按照时间间隔将定时器插入循环队列,但是循环队列中某一时刻只能有一个定时器对象实例,因此,两个定时器中间有执行时间较长的程序则可能会越过某些定时器,且两个定时器的执行间隔不一定会等于设定的间隔,可能大也可能小。区别详述甚至可能会错误的把两个实现定时调用的函数理原创 2017-08-03 15:49:28 · 479 阅读 · 0 评论 -
iframe.contentWindow 介绍
参考:http://blog.csdn.net/alex8046/article/details/51456098一、父级窗口操作iframe里的dom js操作iframe里的dom可以使用contentWindow属性: contentWindow属性,是指 指定的frame或者iframe所在的window对象,在IE中iframe或者frame的contentWindow属性可以省略,转载 2017-08-01 17:17:05 · 10587 阅读 · 0 评论 -
正则表达式知识点总结
var re = /<%([^%>]+)?%>/g, reExp = /(^( )?(if|for|else|switch|case|break|{|}))(.*)?/g;如以上两个表达式所示,^在[ ]中表示非;而^在( )中表示开始符。原创 2017-07-24 09:32:16 · 275 阅读 · 0 评论 -
js中 [] ? true : false 的返回值为什么是true?
对象到数字的转换过程如下:如果对象具有valueof()方法,后者返回一个原始值,则JavaScript将这个原始值转换为数字并返回;否则,如果对象具有toString()方法,后者返回一个原始值,JavaScript将这个字符串转换为数字并返回;否则,报错。数组继承了默认的valueOf()方法,但是数组、函数和正则表达式调用此方法后,只返回对象本身,因此转换为数字,还会继续调用toString(转载 2017-10-06 22:21:31 · 3998 阅读 · 0 评论 -
迅雷面试题:深拷贝对象,除了原型上的属性?
第一种:深拷贝原型上的属性function clone(Obj) { var buf; if (Obj instanceof Array) { buf = []; // 创建一个空的数组 var i = Obj.length; while (i--) { buf[i] = clone(Obj[i]); } return buf; }原创 2017-10-06 21:09:53 · 563 阅读 · 0 评论 -
async函数和await函数
ES7提供了async函数,使得异步操作变得更加方便。一句话,async函数就是Generator函数的语法糖。前文有一个Generator函数,依次读取两个文件。原创 2017-10-25 19:14:17 · 1563 阅读 · 0 评论 -
cookie的用途,它的优点和缺点
初识cookie因为HTTP是一个无状态的协议,现实中的业务却是需要一定的状态的,否则无法区分用户之间的身份。如何标识和认证一个用户,最早的方案就是cookie了。它能记录服务器和客户端之间的状态,最早的用处就是判断用户是否第一次访问网站。它是一个由浏览器和服务器共同协作实现的规范。cookie的处理分为以下几步:服务器向客户端发送cookie浏览器将cookie保存之后每次浏览器都会将coo原创 2017-10-15 17:40:56 · 10065 阅读 · 0 评论 -
js中的date对象
Date对象构造函数Date对象构造函数new Date()new Date(milliseconds)new Date(datestring)new Date(year, month)new Date(year, month, day)new Date(year, month, day, hours)new Date(year, month, day, hours, minutes)原创 2017-10-13 17:30:35 · 487 阅读 · 0 评论 -
JavaScript学习笔记 isPrototypeOf和hasOwnProperty使用区别
1、isPrototypeOfisPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的原型链中,是则返回true,否则返回false。 格式如下: object1.isPrototypeOf(object2); object1是一个对象的实例; object2是另一个将要检查其原型链的对象。 原型链可以用来在同一个对象类型的不同实例之间共享功能。 如果转载 2017-10-06 16:04:45 · 1167 阅读 · 0 评论 -
信大捷安和诺瓦面试题
1.进程和线程的区别?进程占多大内存,怎么存储的,内存结构是什么? 2.网络层和运输层的包头有哪些内容? 3.页面性能优化的方法,继承? 4.单链表是否有环,如何判断?环的长度 5.js是解释性还是编译型,js的运行原理是什么?为什么可以异步,底层原理? 6.运输层和网络层作用是什么? 7.进程之间的通信?线程之间的通信?为什么要进行通信?1.document.ready()的作用,什么原创 2017-09-23 20:58:14 · 2339 阅读 · 0 评论 -
如何判断一个对象中有汉字,数字,大写字母,小写字母?
var obj ={v1:"汉字",v2:"A",v3:"a",v4:1};判断汉字、数字、大小写字母都可以用正则表达式完成,当然对于数字,可能还需要先进行类型判断汉字:/[\u4E00-\u9FA5]/,全汉字 /^[\u4E00-\u9FA5]+$/大写字母:/[A-Z]/,全大写 /^[A-Z]+$/小字字母类似数字类似判断数字类型function isNumber(v) {原创 2017-10-06 10:32:55 · 1022 阅读 · 0 评论 -
JavaScript 中的正常任务与微任务
正常情况下,JavaScript的任务是同步执行的,即执行完前一个任务,然后执行后一个任务。只有遇到异步任务的情况下,执行顺序才会改变。这时,需要区分两种任务:正常任务(task)与微任务(microtask)。它们的区别在于,“正常任务”在下一轮Event Loop执行,“微任务”在本轮Event Loop的所有任务结束后执行。console.log(1);setTimeout(function(转载 2017-10-05 17:58:01 · 1214 阅读 · 0 评论 -
理解promise及适用场景
异步的概念:参考:http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651222422&idx=1&sn=8c059af21a4cd7c9041ab719459451d5&mpshare=1&scene=23&srcid=0511fvGzKWdEjPUi9hxyAHIn#rd转载 2017-05-12 08:32:57 · 9973 阅读 · 0 评论 -
Promise相关
参考:http://www.jianshu.com/p/fe5f173276bd一、 Promise对象有三种状态,他们分别是:pending: 进行中,表示还没有得到结果resolved(Fulfilled): 已完成,表示得到了我们想要的结果,可以继续往下执行rejected: 已失败,也表示得到结果,但是由于结果并非我们所愿,因此拒绝执行这三种状态不受外界影响,而且状态只转载 2017-05-13 16:24:41 · 108 阅读 · 0 评论 -
正则表达式的exec()方法
RegExpObject.exec(string)exec() 方法用于检索字符串中的正则表达式的匹配。返回值返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。说明exec() 方法的功能非常强大,它是一个通用的方法,而且使用起来也比 test() 方法以及支持正则表达式的 String 对象的方法更为复杂。如果 exec() 找到了匹配的文本,则返回一个结果数组。否则,返回原创 2017-10-11 11:46:34 · 5758 阅读 · 0 评论 -
百度一道关于promise笔试题的总结
setTimeout(function () { console.log(1);}, 0);Promise.resolve(function () { console.log(2);})new Promise(function (resolve) { console.log(3);});console.log(4);输出:3 4 undefined 1链接:https://seg原创 2017-09-12 10:49:31 · 2526 阅读 · 1 评论 -
JS设置cookie、读取cookie、删除cookie
JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。而cookie是运行在客户端的,所以可以用JS来设置cookie.cookie的适用场景假设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来引用temp的变量值,对于JS中的全局变量或者静态转载 2017-10-05 11:44:41 · 762 阅读 · 0 评论 -
为什么jsonp只支持get请求?JSONP是同步还是异步
JSONP的原理JSONP 是一种【请求一段 JS 脚本,把执行这段脚本的结果当做数据】的玩法。所以,你能 POST 一段通过 script 标签引入的脚本吗?(如果看过 JSONP 库的源码就知道,常见的实现代码其实就是 document.createElement(‘script’) 生成一个 script 标签,然后插 body 里而已。在这里根本没有设置请求格式的余地)。所以JSONP的实现转载 2017-10-03 17:45:42 · 8347 阅读 · 1 评论 -
js之script属性async与defer
概念默认情况下js的脚本执行是同步和阻塞的,但是 <script> 标签有 defer 和 async 属性, 这可以改变脚本的执行方式,这些都是布尔类型了,没有值,只需要出现在 <script> 标签里即可。如:转自:http://www.cnblogs.com/tanhehe/p/4236021.html转载 2017-10-03 18:27:31 · 305 阅读 · 0 评论 -
为什么jsonp只支持get请求?
JSONP的原理JSONP 是一种【请求一段 JS 脚本,把执行这段脚本的结果当做数据】的玩法。所以,你能 POST 一段通过 script 标签引入的脚本吗?(如果看过 JSONP 库的源码就知道,常见的实现代码其实就是 document.createElement(‘script’) 生成一个 script 标签,然后插 body 里而已。在这里根本没有设置请求格式的余地)。所以JSONP的实现转载 2017-10-03 18:24:29 · 9011 阅读 · 0 评论 -
一道被"坑"到的前端Javascript面试题
前一段时间去了一个小公司面试前端,被”坑”的体无完肤了…,来分享一下这道题 一道js面试题,当时面试时完全说了一个相反的结果 var a = { n : 1}; var b = a; a.x = a = {n: 2}; alert(a.x); alert(b.x);结果是这样的:undefined [object Object]是不是想不明白呢? 呵呵,我转载 2017-10-07 22:24:27 · 549 阅读 · 0 评论 -
js中的对象
在JavaScript中对象是一个无序属性的集合,其属性可以包含基本值、对象或者函数。对象最简单的创建方式JavaScript中创建对象最简单的方式就是创建一个Object对象的实例,然后再添加属性和方法。var person = new Object();person.name = 'jenemy';person.age = 24;person.getName = function() {原创 2017-08-01 15:25:39 · 244 阅读 · 0 评论 -
事件类型、绑定方式
事件类型1、表单事件:submit事件reset事件click事件change事件focus事件(不冒泡) (IE和ES5支持冒泡的focusin)blur事件(不冒泡) (IE和ES5支持冒泡的focusout)input事件(ES5 textinput提供更方便的获取输入文字的方案)2、Window事件load事件DOMContentLoaded事件readyStatechage事件unload转载 2017-08-01 09:39:34 · 454 阅读 · 0 评论 -
js对象的深拷贝和浅拷贝
var doctor=extendCopy(Chinese);doctor.career="医生";console.log(doctor);前言:uber属性:js本身并没有这个属性。“uber”是某些人在模拟class时用来表示super的(因为super是关键字所以不能直接用)。经典的面向对象语言一般都有访问父类(超类)的特殊语法,这样子类的方法就可以使用父类的方法了,子类和父类的转载 2017-05-09 10:55:09 · 1027 阅读 · 0 评论 -
跨域的几种方法
跨域:只要协议、域名或端口号有任何一个不同,都被当做是不同的域。URL1 URL2 说明 是否允许通信http://www.a.com/a.js http://www.a.com/b.js 同一域名转载 2017-05-11 08:39:54 · 1008 阅读 · 0 评论 -
process.nextTick和setImmediate的区别
参考http://blog.csdn.net/hkh_1012/article/details/53453138转载 2017-06-06 20:50:08 · 761 阅读 · 0 评论