
ECMAScript
Lawliet_ZMZ
ACMERandNODER
展开
-
ES Module,commonjs和Typescript模块系统
TS中常常用import * as React 导入。TS 把 CJS 模块作为一个 Namespace 导入,所以,为了解决上面提到的报错,需要这样导入 CJS 模块,以及任何没有 default 导出的模块: import * as React from ‘react’这样子的代码,如果从 babel 迁移到 TS 就需要大幅的改动代码,不过 TS 也注意到了这个问题,添加了一个 comp...原创 2019-12-06 15:09:38 · 1695 阅读 · 0 评论 -
await的错误处理问题,一个issue引发的ts社区的讨论
https://github.com/denoland/deno_std/blob/master/fs/empty_dir.ts#L8https://juejin.im/post/5d25b39bf265da1bb67a4176http://es6.ruanyifeng.com/#docs/async任何一个await语句后面的 Promise 对象变为reject状态,那么整个async函...原创 2019-07-13 22:40:28 · 1705 阅读 · 0 评论 -
jQuery的链式调用原理,Promise的链式调用,this的问题
最近被问到这个问题,jq的链式调用原理,当时比较懵=。=,毕竟现在jq接触的机会变很少了。jq的链式调用jq的链式调用其实就是比如我们在选择dom的时候,$('input[type="button"]') .eq(0).click(function() { alert('点击我!');}).end().eq(1).click(function() { ...原创 2018-08-16 01:17:02 · 7158 阅读 · 2 评论 -
一道promise的小题目(Promise异步流程控制)
用Promise控制异步流程,三个异步任务,时间可能有先后,但是要按照想要的顺序输出。 我这里用四种方法解决,其实也就是考察你对Promise的理解,基础题了。//实现mergePromise函数,把传进去的数组顺序先后执行,//并且把返回的数据先后放到数组data中const timeout = ms => new Promise((resolve, reject) =>...原创 2018-08-18 01:08:22 · 979 阅读 · 2 评论 -
Node异步爬虫引出的异步流程控制的一些问题
前记: 想写一个电影天堂的爬虫,因为node很长时间落下,就想用node去写一下。结果遇到了一些列的问题,这些问题归根到底就是异步流程控制的问题,在以前就一直会接触到很多回调地狱,Promise为什么会出现诸如此类的话题,现在终于是深刻体会到了!开始的代码是:const cheerio = require('cheerio');const http = require('http'...原创 2018-06-27 17:13:04 · 456 阅读 · 0 评论 -
那些短小精悍的&奇葩的&令人感到惊讶的JavaScript代码(一)
自学习前端以来,陆陆续续遇见很多短小令人惊讶的js代码,固有了专门开一片日记来记录这些代码的想法。借此提高写代码的姿势和深度理解JavaScript。1.JavaScript中 (a ==1 && a== 2 && a==3) 可能为 true 吗?来自Stack Overflow的一个问题:链接国外面试题,Nothing is impossible...原创 2018-01-28 21:04:11 · 1517 阅读 · 0 评论 -
奇妙JS代码系列(二)call,apply,bind用处整理
延续系列一:链接,此次主要整理JS里面很常见的三个函数call,apply,bind的妙用。(apply和call差不多,只是参数的区别)(下面有些这三个可能只是辅助,但是只要用到,我就在这里整理)1.类型检测上一篇最后一个已经讲到,Object.prototype.toString.call()。犹豫上一篇说了,这里就不多说了。2.解参,等同于ES6中的…扩展运算符es6中提出了...原创 2018-02-17 16:57:12 · 217 阅读 · 0 评论 -
对箭头函数的补充
上一篇:http://blog.youkuaiyun.com/major_zhang/article/details/78616835 最近看了MDN文档,感觉写的是异常好啊。。。。通俗易懂,又有例子。这里想在强调一下箭头函数与this的绑定问题。 eg:function Person() { // Person() 构造函数定义 `this`作为它自己的实例. this.age =原创 2018-01-27 00:18:52 · 226 阅读 · 0 评论 -
Promise和Async/Await用法整理
1.Promise1.简介Promise,简单来说就是一个容器,里面保存着某个未来才会结束的时间(通常是一个异步操作的结果)Promise对象的基本语法:new Promise((resolve,reject) => { //.....});从语法上来说,Promise是一个对象,从它可以获取异步操作的消息。基本语法:let p = new Promise((原创 2018-01-24 21:40:14 · 13901 阅读 · 1 评论 -
ES6中的const,set,map,Symbol
const,常量声明者01-只在当前的代码块有效02-作用域不会被提升03-在一个作用域里不能重复声明04-申明的常量必须立即赋值05可以改变堆区的对象内容,不能修改栈区的地址(和其他语言如Java类似) <!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title原创 2017-12-25 22:26:49 · 394 阅读 · 0 评论 -
箭头函数
特性:1.单个参数时可省略(),箭头函数函数体只有单条语句返回时,可省略{}和returnvar f = v => v;// 等同于var f = function(v) { return v;}var f = () => 5;// 等同于var f = function() { return 5;}var sum = (num1, nu原创 2017-11-23 17:06:15 · 339 阅读 · 0 评论 -
ES6 let和var的四个不同
ES6 let和var的四个不同01-作用域只局限于当前代码块02-使用let声明的变量作用域不会被提升03在相同的作用域下不能声明相同的变量04-for循环体现let的父子作用域代码:<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head>原创 2017-12-19 21:37:58 · 304 阅读 · 0 评论 -
let和var的一个问题
原代码来自ruan老师ES6书,作为var和let对比的说明。 我特地去SF社区问了下,得到了一些大佬们很好的回答。我这里总结一下。 1. 必须记住的两点:函数作用域是声明时确定的,函数内的值是执行时确定的!所以执行时去确定i,注意function函数参数列表里没有传入i的值,会去外层作用域找,此时i已经在遍历完变成了10。 2. 变量i是v原创 2017-11-30 20:58:01 · 309 阅读 · 0 评论