javascript思考
codeingant
这个作者很懒,什么都没留下…
展开
-
对于javascript块的概念引申的一些东西
今天遇到了这一题,由此学到的东西for(var i=0; i10; i++){} alert(i); 最后结果是这样的10,因为js是没有块的概念,只有函数作用域的概念,所以循环执行完毕后还是保留着i,解决办法就是使用let(ES6的标准)如何实现块,可以用到js的立即表达式(function (){})();首先先聊聊js的程序对于变量回收的方式,方法执行完成后就会回收变量,同原创 2017-09-18 21:43:17 · 522 阅读 · 1 评论 -
es6 扩展运算符 三个点(...)
1 含义扩展运算符( spread )是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。console.log(...[1, 2, 3])// 1 2 3console.log(1, ...[2, 3, 4], 5)// 1 2 3 4 5[...document.querySelectorAll('div')]// [<div>, <di...转载 2018-07-09 14:07:03 · 369 阅读 · 0 评论 -
ajax readyState的五种状态
xhr.readyStatede的值有0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法) 1 (初始化) 对象已建立,尚未调用send方法 2 (发送数据) send方法已调用,但是当前的状态及http头未知 3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误, 4 (完成) 数据接收完毕...原创 2018-05-08 18:28:00 · 392 阅读 · 0 评论 -
Use EventSource Achieve Comet
Firstly introduce the HTML5 API: The EventSource interface is web content's interface to server-sent events. An EventSource instance opens a persistent connection to an HTTP server, which sends...原创 2018-05-08 17:08:58 · 330 阅读 · 0 评论 -
JavaScript函数式编程 IO涵子,错误处理涵子
里我们提到了纯函数的概念,所谓的纯函数就是,对于相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用,也不依赖外部环境的状态(我偷懒复制过来的)。但是实际的编程中,特别是前端的编程范畴里,“不依赖外部环境”这个条件是根本不可能的,我们总是不可避免地接触到 DOM、AJAX 这些状态随时都在变化的东西。所以我们需要用更强大的技术来干这些脏活。一、容器、Functor如果你熟悉 jQuery ...转载 2018-05-06 15:07:50 · 902 阅读 · 0 评论 -
addEventListener的第三个参数
DOM方法 addEventListener() 和 removeEventListener()是用来分配和删除事件的函数。 这两个方法都需要三个参数,分别为:事件名称(String)、要触发的事件处理函数(Function)、指定事件处理函数的时期或阶段(boolean)。DOM事件流如图(剪自javascript高级程序设计,懒的画了):由图可知捕获过程要先于冒泡过程当第三个参数设置为true...转载 2018-05-04 20:17:13 · 26546 阅读 · 2 评论 -
addEventListener的第三个参数
本文转载自https://my.oschina.net/u/1454562/blog/205010方法一:直接在对应的HTML元素标签上绑定函数button id='submit' onclick='onClickFn()'>Click Me!button>方法二:在JavaScript代码里面指定元素的“onclick”方法var btn = document.get转载 2018-03-09 00:36:19 · 2179 阅读 · 1 评论 -
ES6 Promise对象解决异步回调
文章目录关于ES6中Promise的文章网上太多了,英文词义:承诺、允诺。Promise对象是一个构造函数,用来生成Promise实例。Promise构造函数接受一个函数作为参数,该函数的两个参数分别是resolve和reject。它们是两个函数,由JavaScript引擎提供,不用自己部署。Promise实例生成以后,可以用then方法分别指定Resolved状态和Reject状态的回调函数。什...转载 2018-02-27 19:48:22 · 1169 阅读 · 0 评论 -
JS中内嵌函数中this关键字的使用
在嵌套函数中,如果当做函数调用,那么this的值依赖于当前使用的是否为严格模式,在非严格模式下,this为全局上下文,否则为undefined,严格模式时报错如图:在严格模式下...原创 2018-02-12 22:17:34 · 740 阅读 · 0 评论 -
match函数和(?:)的用法
对于这个表达式,?:的功能是在匹配结果中忽略掉(in|of)的分组,在match匹配中他的返回会被忽略,这里正则被分为3个子集,第二子集忽略,字符串expression,首先是整个正则与字符串匹配,然后是子集与字符串匹配,结果如下:但是如果为结尾有g,那么这个结果就将只有全局一个。原创 2018-01-26 18:28:50 · 3018 阅读 · 0 评论 -
关于js的函数提升问题
使用var functionName=function(){}与function functionName(){}是不同效果的,function functionName(){}会定义提升,举个例子使用变量定义时:而使用一般定义时可以看到无论方法在哪调用都会正确执行,那么问题来了,是为什么会产生函数提升呢?对于这个问题就要知道js的编译器的运行机制了,先来看下小例子,a原创 2018-01-08 13:42:45 · 476 阅读 · 0 评论 -
关于javascript的指针一道题
//在这一题关键解析是,arr指针一开始指针是s,然后变了tempvar s=[];var arr=s;for(var i=0;i<3;i++){var pusher={ value:'item'+i},temp;if(i!==2){temp=[];pusher.children=temp;}arr.push(pusher);arr=tem...原创 2018-08-09 14:29:23 · 253 阅读 · 0 评论