class 专题 定义 class //es5 类的定义  属性定义在 function 上, 方法定义在原型链上 function foobar(){ this.foo_ = 'foo'; this.bar_ = 'bar'; } foobar.prototype.sayHello = function(){ console.log('hello') } const fb = new foobar(); fb.sayHello(); // es6 class 语法 class foobar2{…
转http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/ 掌握 Ajax,第 2 部分: 使用 JavaScript 和 Ajax 发出异步请求 在 Web 请求中使用 XMLHttpRequest 多数 Web 应用程序都使用请求/响应模型从服务器上获得完整的 HTML 页面.常常是点击一个按钮,等待服务器响应,再点击另一个按钮,然后再等待,这样一个反复的过程.有了 Ajax 和 XMLHttpRequest 对象,就可以使用不必让用户等…
javascript中4种异步: 1.ajax 2.定时器 3.事件绑定 4,回调 定时器 //顺序执行 /* var s = 0; for (var i = 0; i < 10000; i++) { if (i == 9999) { console.log(9999); } } console.log('not ok');*/ //死循环 /*while (1) { console.log('looping') } console.log('ok');*/ /* setTimeout(func…
c#封装DBHelper类   public enum EffentNextType { /// <summary> /// 对其他语句无任何影响 /// </summary> None, /// <summary> /// 当前语句必须为"select count(1) from .."格式,如果存在则继续执行,不存在回滚事务 /// </summary> WhenHaveContine, /// <summary> ///…
JavaScript 文件延迟和异步加载 -般情况下,在文档的 <head> 标签中包含 JavaScript 脚本,或者导入的 JavaScript 文件. 这意味着必须等到全部 JavaScript 代码都被加载.解析和执行完以后,才能继续解析后面的 HTML 部分. 如果加载的 JavaScript 文件很大, HTML 文档解析就容易出现延迟. 为了避免这个问题,在开发 Web 应用程序时,建议把导入 JavaScript 文件的操作放在 <body> 后面,让浏览器先 将…
运行时概念 下面的内容解释了一个理论上的模型.现代 JavaScript 引擎着重实现和优化了描述的几个语义. 可视化描述 栈 函数调用形成了一个栈帧. function foo(b) { var a = 10; return a + b + 11; } function bar(x) { var y = 3; return foo(x * y); } console.log(bar(7)); 当调用bar时,创建了第一个帧 ,帧中包含了bar的参数和局部变量.当bar调用foo时,第二个帧就被…
数组专题 展开运算符 使用...符号, 可以将数组"展开". 数组展开的妙用 ... eg: // 代替apply const foo = [1, 2, 3] const bar = [4, 5, 6] foo.push(...bar) // 相当于foo.push(4, 5, 6) // 假数组转真数组 var nodeList = document.querySelectorAll('div') var earlArray = [...nodeList] // 代替concat等复…
let , const 和 var javascript 里面的作用域 一个大括号 是一个作用域 {  } var 会 在局部作用定义 被定义时 会提升作用域  如 if 的 {} 就属于 局部作用域 为了规避 var 关键字的"变量作用域的提升"问题而产生的定义变量语法 let obj = {} # 可变的对象 const obj = {}  # 不可变的对象 什么是作用域提升?let定义的变量, 其作用域与用var定义的变量有什么区别? 使用 var 定义在 function 内定…
1. 由字符串生成数组 split() 分割字符串,并将分割的部分作为一个元素保存在一个新建的数组中. var str1 = "this is an emample to using the method of array ."; var str2 = str1.split(" "); //以空格作为分割条件 for(var i = 0; i< str2.length; i++ ){ console.log(str2[i]); } 2.查找元素 indexOf…
1.手绘一张图说明. 2.为什么JavaScript是单线程(这里引用阮一峰老师的话) JavaScript的单线程,与它的用途有关. 作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM. 这决定了它只能是单线程,否则会带来很复杂的同步问题. 比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准? 所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核心…
1. HTTP协议的状态消息都有哪些? 1**:请求收到,继续处理2**:操作成功收到,分析.接受3**:完成此请求必须进一步处理4**:请求包含一个错误语法或不能完成5**:服务器执行一个完全有效请求失败   2. AJAX跨域的解决办法?   1.document.domain+iframe的设置 对于主域相同而子域不同的例子,可以通过设置document.domain的办法来解决. 具体的做法是可以在http://www.a.com/a.html和http://script.a.com/b…
随着人们对网站视觉效果及用户体验的要求越来越高,所以在未来网站的建设中,设计师们开始越来越多的使用了js文件来达到预期的效果,随着js文件的越来越多,令设计师们最头痛的事情也就来了,那就是Javascript语言的执行环境是“单线程(single thread)”. 所谓“单线程”,就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推. 马海祥觉的这种模式的好处是实现起来比较简单,执行环境相对单纯:坏处是只要有一个任务耗时很长,后面的任务都必须排…
聊聊同步.异步和回调 同步,异步,回调,我们傻傻分不清楚, 有一天,你找到公司刚来的程序员小T,跟他说:“我们要加个需求,你放下手里的事情优先支持,我会一直等你做完再离开”.小T微笑着答应了,眼角却滑过一丝不易觉察的杀意. 世界上的所有事情大致可以分为同步去做和异步去做两种.你打电话去订酒店,电话另一边的工作人员需要查下他们的管理系统才能告诉你有没有房间. 这时候你有两种选择:一种是不挂电话一直等待,直到工作人员查到为止(可能几分钟也可能几个小时,取决于他们的办事效率),这就是同步的. 另一种是…
火于异步 1995年,当时最流行的浏览器--网景中开始运行 JavaScript (最初称为 LiveScript). 1996年,微软发布了 JScript 兼容 JavaScript.随着网景.微软竞争而不断的技术更新,在 2000年前后,JavaScript 相关的技术基础准备就绪. 随后到 2005 年前后,以 Google 为首开始重视使用 AJAX(即 Asynchronous JavaScript and XML),使得复杂的网页交互体验接近桌面应用. 然后,随着 Web 应用变得…
1.简单的settimeout setTimeout(function () { while (true) { } }, 1000); setTimeout(function () { alert('end 2'); }, 2000); setTimeout(function () { alert('end 1'); }, 100); alert('end'); 执行的结果是弹出‘end’‘end 1’,然后浏览器假死,就是不弹出‘end 2’.也就是说第一个settimeout里执行的时候是一…
引言 最近面试被问到,JS 既然是单线程的,为什么可以执行异步操作? 当时脑子蒙了,思维一直被困在 单线程 这个问题上,一直在思考单线程为什么可以额外运行任务,其实在我很早以前写的博客里面有写相关的内容,只不过时间太长给忘了,所以要经常温习啊:(浅谈 Generator 和 Promise 的原理及实现) JS 是单线程的,只有一个主线程 函数内的代码从上到下顺序执行,遇到被调用的函数先进入被调用函数执行,待完成后继续执行 遇到异步事件,浏览器另开一个线程,主线程继续执行,待结果返回后,执行回调…
在JavaScript中,一个线程执行的时候不依靠其他线程处理完毕我们称为异步,相反一个线程必须等待直到另一个线程处理完毕我们则称为同步.打个比方: (1)同步就是你在煮方便面的时候必须等水开了,你才会放调料和方便面: (2)异步就是你在煮方便面的时候不需要等水开了,你可以刚开始开火的时候,就放调料和方便面:在JS中同步异步与阻塞非阻塞其实没有本质的区别,我们往往指的是一回事,因为JS是单线程的.但是js执行环境是多线程的,想要达到阻塞效果,可以通过同步或者alert()在做后台系统中,后台系统…
[原创]转载请注明出处,请勿用于作弊 专题一: 链接: https://pan.baidu.com/s/11xCwvuPHDkTPeOB_yzJWnw 提取码: prup 专题二: 链接: https://pan.baidu.com/s/1Zn4FMt_n8x8OtZWiLdFlVw 提取码: h7b5 专题三: 链接: https://pan.baidu.com/s/17EGIljob5sw6-D3lB2nDwA 提取码: 843v 专题四: 链接: https://pan.baidu.com…
首先JavaScript是单线程的语言,也就是说JS执行环境中,负责执行代码的线程只有一个.一次只能执行一个任务,如果有多个任务的话, 就要排队,然后依次执行,优点就是更安全,更简单.缺点就是遇到耗时的任务就必须要去排队,如下图所示: 所以为了解决耗时任务阻塞执行的情况,JavaScript将任务的执行模式分为两种:同步模式和异步模式 同步模式: 下面以一段同步代码为例来分析下它的执行过程: 上图中Call stack为Js执行调用栈,Console为控制台信息,首先上述代码会在调用栈中压入一个…
异步模式Asynchronous 不会等待这个任务结束才开始执行下一个任务,开启之后立即执行下一个任务,后续逻辑一般会通过回调函数的方式定义,异步模式对js 非常重要,没有异步任务单线程的 js 语言就无法同时处理大量耗时任务,单线程下面的异步最大的难点就是 代码的执行顺序混乱,Queue是消息队列队列也叫回调队列 打印消息给同步一样执行压栈弹栈,接下来就是倒计时器,setTimeOut 就是调用了web api,web api单独运行不会阻塞js的执行, 开启倒计时器之后 setTimeOut…
知乎上面看到一个面试题. 某个应用模块由文本框 input,以及按钮 A,按钮 B 组成.点击按钮 A,会向地址 urlA 发出一个 ajax 请求,并将返回的字符串填充到 input 中(覆盖 input 中原有的数据),点击按钮 B,会向地址 urlB 发出一个 ajax 请求,并将返回的字符串填充到 input 中(覆盖 input 中原有的数据). 当用户依次点击按钮 A.B 的时候,预期的效果是 input 依次被 urlA.urlB 返回的数据填充,但是由于到 urlA 的请求返回比…
背景 自从NodeJs出来以后,异步编程便更加系统化和框架话了,为了应对异步编程框架带来的深层嵌套问题,社区也出现了异步流程编程框架,本文主要对异步流程框架做一个简单的解析. 现配代码了 var Asy = function () { }; Asy.start = function (action, success, failure) { var asy = new Asy(); asy._addAction(action, success, failure); return asy; } As…
异常处理是异步编程的一个难点. 在同步的代码中,异常可以非常easy地通过try catch语句来完毕: try { f(); g(); h(); } catch (e) { // handle any error that occurred... } 可是在异步代码中,使用一个try代码块将全部可能出现的异常都包含在内是不现实的.实际上,异步API设置不能抛出异常.由于当异常发生时,通常已经没有运行上下文供它抛出了. 全部,在异步API中一般会使用特殊的參数或者错误回调函数来表示异常信息.比方…
AC自动机相关: $fail$树: $fail$树上以最长$border$关系形成父子关系,我们定一个节点对应的串为根到该节点的路径. 对于任意一个非根节点$x$,定$y = fa_{x}$,那$y$对应的串就是$x$对应的串的最长$border$,也就是说如果母串能走到$x$,那母串中一定存在一个子串对应了$y$,而且是当前母串匹配到当前位置的一个后缀. 求每个模式串在母串中出现的次数: 这应该算是AC自动机最基本的问题. 把母串在自动机上跑一遍,显然所有被访问过的节点都是母串的子串,但以当前…
某天尝试了下在 forEach函数中调用 await Promise() 方法,如下: var arr = [1,2,3] arr.forEach(async (v,i,a)=>{ await Promise() }) 发现并没有按照想象中等到上一个Promise 处理完成后再执行下个Promise. 经过查阅资料后发现,实际forEach函数内部是异步的,遇到这种问题请使用for循环,如下: var arr = [1,2,3] for(let i=0;i<arr.length;i++){ a…
本期题目包括: 1074:https://pintia.cn/problem-sets/994805342720868352/problems/994805394512134144 1052:https://pintia.cn/problem-sets/994805342720868352/problems/994805425780670464 1032:https://pintia.cn/problem-sets/994805342720868352/problems/994805460652…
学python几个月了正好练练手,发现问题不断提高,先从专题入手,爬取些数据,一开始对简书网站结构不熟悉,抓取推荐,热门,城市3个导航栏,交流发现推荐和热门是排序不同,url会重复,以及每个专题详情页三个类目最新评论,最新收录, 热门也会重复 做了下调整,代码执行完毕会返回所有专题的urls元组对象,以便下一步进入每个专题页面解析获取其他数据.注:变量focus关注数,和打开专题后最上面显示的专题关注人数会有差异,例如有的专题关注了10175人,在专题列表页会显示成"10.07k",因…
前言 javascript的中的异步是很重要的概念,特别是ajax的提出,给整个web带来了很大的影响,今天就介绍下javascript的异步编程. 同步与异步 何为同步?何为异步呢? 同步:说白了就是程序一步一步从下向下执行,没有什么别的代码的跳动,就是按序执行,和在景区里女生上厕所是排队是一样的(每次女厕都是有好多人在排队).可以看成是一个单线程问题. 异步:异步就是程序可以跳着执行,开始执行一段程序之后不用等返回结果就执行其他的代码,等结果返回之后在对结果进行处理,也就是可以在有限的时间内…
专题模块 专题模块PC标签调用说明 模块名:special 模块提供的可用操作 操作名 说明 lists 专题列表 content_list 专题信息列表 hits 专题信息点击排序 下面对所有的操作分开说明 专题列表(lists): 可用参数: 参数名 是否必须 默认值 说明 siteid 否 当前站点 站点ID elite 否 null 是否推荐 isthumb 否 null 必须有缩略图 listorder 否 null 排序方式 代码例子: {pc:special action="lis…
终于到了神话破灭的时刻-- 这注定是一篇"自取其辱"的博客,飞哥,你们眼中的大神,Duang,这次脸朝下摔地上了. 故事得从这个求助开始:e.returnValue 报错:未定义,"一起帮"现在人气还不够旺,碰到了我勉勉强强能够解决的问题,硬着头皮也得上啊!远程一看,问题不是e.returnValue没值,是e本身就没值.而更核心的问题是:这段代码,是被放在setTimeout()里面的.(这里插一句:很多问题,就得远程,求助人贴出来的代码,根本就没抓住重点.话说,…