JavaScript Promise
编程鸭
这个作者很懒,什么都没留下…
展开
-
技术栈:小菜前端的技术栈是如何规划和演进的
Scott 近两年无论是面试还是线下线上的技术分享,遇到许许多多前端同学,由于团队原因,个人原因,职业成长,技术方向,甚至家庭等等原因,在理想国与现实之间,在放弃与坚守之间,摇摆不停,心酸硬抗,大家可以找我聊聊南聊聊北,对工程师的宿命有更多的了解,有更多的看见与听见,Scott 微信: codingdream。本系列共15+ 篇 - 点此链接,此为第一篇,大家看完转发下朋友圈我就心满意...原创 2019-06-23 17:45:54 · 226 阅读 · 0 评论 -
成为前端,你不该学的东西,以及不该做的事儿!
很多前端都想找一个学习计划,然后认真学,成为一个大牛;他们迫切的想知道自己该学什么,然后看什么书,有什么资源可以用!我今天要告诉你的是,你不要看什么书,不要做什么事!因为如果你再不恰当的阶段,看了那些看起来“很正确的”金科玉律一般的书籍,除了打消你学习的兴趣,浪费你的时间,增加你放弃的几率之外,并不会有什么益处。而这些书籍和事情恰恰是很多“水牛”,他们自己并不一定干过,也做不到...原创 2019-06-18 17:57:16 · 283 阅读 · 0 评论 -
2019 - Web开发技术指南和趋势
这是一个2019年你成为前端,后端或全栈开发者的进阶指南:你不需要学习所有的技术成为一个web开发者 这个指南只是通过简单分类列出了技术选项 我将从我的经验和参考中给出建议 首选我们会介绍通用的知识, 最后介绍2019年的Web的一些趋势1. 基础前端开发者1.1 HTML & CSSHTML & CSS最基础的知识:语义化的HTML元素 基础的...原创 2019-06-18 17:56:16 · 140 阅读 · 0 评论 -
写给初级前端的面试经验
最近到了金三银四的跳槽季,很多人都会面临跳槽找工作,并且再过几个月又会到毕业季,越来越多的毕业生会面临这个问题。同样,我们组因为业务需要(我们今年倒是还没有人员离职,感动╭(╯^╰)╮)需要进行社招,我最近看了不少简历,并且对一些小伙伴进行了电话沟通(电面),对面试找工作有一些自己浅薄的观点因为个人认为本人的技术还是很菜的,并且工作经验也没有特别丰富,所以文章内容都是自己一些浅...原创 2019-06-18 17:54:55 · 2426 阅读 · 3 评论 -
如何学习一门新的语言?
首先要说,这并不是一篇教你如何学习的文章,因为到今天为止我也没有找到一种通用的方法来解决如何学习的问题。但是在探索的道路上,我确实产生过一些思路,我想把这些思考的过程分享出来让大家探讨。如果这对你有帮助的话,那我会非常高兴。我最近在学习 Rust ,这是一门很酷但是相对冷门的语言(学习冷门语言可能是我的一大爱好,比如我就非常喜欢 CoffeeScript ,这是 JavaScrip...原创 2019-06-18 17:53:52 · 243 阅读 · 0 评论 -
什么是闭包?闭包的优缺点?
闭包(closure)是javascript的一大难点,也是它的特色。很多高级应用都要依靠闭包来实现。1、变量作用域要理解闭包,首先要理解javascript的特殊的变量作用域。变量的作用域无非就两种:全局变量和局部变量。javascript语言的特别之处就在于:函数内部可以直接读取全局变量,但是在函数外部无法读取函数内部的局部变量。注意点:在函数内部声明变量的时候...原创 2019-06-18 17:52:58 · 231 阅读 · 0 评论 -
JavaScript简史:从网景到前端框架三巨头
从上世纪 90 年代中期发行以来,JavaScript 就已经成为最流行的 Web 开发语言之一了。尽管 JavaScript 最初只是一个浏览器脚本语言,但是近几年,我们已经能够明显看到它在不断地演变:在桌面端、移动设备和服务端 Web App 领域都有所发展。“任何能够用 JavaScript 实现的应用系统,最终都必将用 JavaScript 实现”,Jeff Atwood ...原创 2019-06-18 17:52:07 · 760 阅读 · 1 评论 -
JS 无形装逼,最为致命
除了三目运算,你还知道其他的装逼姿势吗?留言走你~~单行简洁的代码很难维护(有时甚至难以理解),但这并不能阻止广大攻城狮们脑洞,在编写简洁的代码后获得一定的满足感。以下我最近的一些收藏javascript精简代码集合。它们都可以在你的开发控制台中运行,你可以从控制台中查看运行结果。同时,我希望你能在评论中分享一些自己的藏品!日历创建过去七天的数组,如果将代码中的减号换...原创 2019-06-18 17:51:24 · 180 阅读 · 0 评论 -
如何写出无法维护的代码
什么叫“创造力”,创造力就是——就算是要干一件烂事都能干得那么漂亮那么有创意的能力。什么叫“抓狂”,抓狂就是——以一种沉着老练的不屈不挠的一本正经的精神一点一点把你推向崩溃的边缘。另外,维护程序的朋友们,你们死定了!!如果建筑师盖房子就像程序员写程序一样,那么,第一只到来的啄木鸟就能毁掉我们的文明程序命名容易输入的名字。比如:Fred,asdf 单字母的变量名。比如:a,b,c...原创 2019-06-18 17:49:59 · 518 阅读 · 0 评论 -
JavaScript深入浅出第1课:箭头函数中的this究竟是什么鬼?
摘要:箭头函数极大地简化了this的取值规则。普通函数与箭头函数普通函数指的是用function定义的函数:var hello = function () { console.log("Hello, Fundebug!");}箭头函数指的是用=>定义的函数:var hello = () => { console.log("Hello,...原创 2019-06-18 17:48:45 · 147 阅读 · 0 评论 -
HTML、CSS、JavaScript、PHP、 MySQL 的学习顺序是什么?
1、横向分类前端:HTML、CSS、JavaScript后端:PHP、MySQL2、责任分类HTML:负责网页结构部分CSS:负责网页布局与样式部分JavaScript:负责网页程序逻辑、动态渲染与特效部分PHP:负责服务端逻辑与数据库操作部分MySQL:负责数据存储部分3、学习技术与人的类比1、首先,人要有一个基本的组成(头、...原创 2019-06-18 17:46:18 · 700 阅读 · 0 评论 -
为什么JavaScript中的this如此强大?
“this”到底是什么?在Vanilla JavaScript中,是一个让新手很困扰的问题。特别是对于我们这些没有编程背景的初学者。我曾经从事会计工作,对于JIB、AP、AR这些专业词很熟悉。因为词典会给它们一个清晰的定义。但是,“this”的定义却一点都不清晰。我记得第一次学习对象的时候,”this“在构造函数中被使用,但是从来没有清楚地解释。到底什么是this?...原创 2019-06-23 17:46:43 · 224 阅读 · 0 评论 -
JS的函数调用栈有多深
如果你写了一个一直调用自身的死循环,那么恭喜你,很快就可以看到报错:Uncaught RangeError: Maximum call stack size exceeded。那么这个call stack size有多少呢?1. 计算方法如下的方法可以为你计算出你使用的JavaScript引擎可以支持多深的调用(由Ben Alman的一段代码获得灵感):function ...原创 2019-06-22 17:25:15 · 792 阅读 · 0 评论 -
如何禁止JavaScript对象重写?
由于JavaScript的灵活性,我们可以轻易地重写(override)一些于其他人定义的对象(object)。换句话说,任何人都可以重写我们所定义的对象。这是一个非常强大的特性,许多开发者都有兴趣试试,来拓展或者修改某些对象的行为。例如,DOM方法document.getElementById()都可以被重写。一般来讲,我们应该避免这样做,因为这会导致代码很难维护,并且会留下一些难于...原创 2019-06-22 17:24:32 · 404 阅读 · 0 评论 -
2018年你需要知道的13个JavaScript工具库
JavaScript依然是2018年最受欢迎、最流行的编程语言,所以它的生态系统也十分完善。JavaScript小小的标准库已经不足以应付各种开发需求。在Github上,有许多流行的JavaScript工具库。在这里,我整理了一个列表推荐给大家:1.Lodash&Underscore也许大多数童鞋都已经知道它们。Underscore提供了日常使...原创 2019-06-22 17:23:55 · 132 阅读 · 0 评论 -
详解JavaScript之神奇的Object.defineProperty
=与Object.defineProperty为JavaScript对象新增或者修改属性,有两种不同方式:直接使用=赋值或者使用Object.defineProperty()定义。如下:// 示例1var obj = {};// 直接使用=赋值obj.a = 1;// 使用Object.defineProperty定义Object.defineProperty(...原创 2019-06-22 17:23:02 · 166 阅读 · 0 评论 -
JavaScript正则表达式进阶指南
本文用JavaScript的exec方法来测试正则表达式。例如,正则表达式/F.*g/会匹配“以F开头,以g结尾的字符串”,因此可以匹配”Hello, Fundebug!”中的Fundebug,exec方法会返回一个数组,其第一个元素为所匹配的子字符串。/F.*g/.exec("Hello, Fundebug!")[0]// 'Fundebug'非贪婪匹配...原创 2019-06-22 17:22:10 · 90 阅读 · 0 评论 -
我是如何在毕业不久只用1年就升为开发组长的
故事的开篇把时钟拨回到9年前,那是2010年的10月份,李大胖入职了新公司,在公司本部呆了一个多月,就被发往客户单位进行驻场开发。公司给客户做的系统,需要不断的二次开发和维护,所以直接去客户单位比较利于工作的进行。一个周五的下午,经理把我叫到办公室,说到:“下周你就去客户现场吧,我们有些同事在那里,那里是有门禁的,需要有人接你才行”。然后就把一个同事的手机号给了我,说到了就给他打...原创 2019-06-23 17:47:05 · 393 阅读 · 0 评论 -
JavaScript中的垃圾回收和内存泄漏
前言程序的运行需要内存。只要程序提出要求,操作系统或者运行时就必须供给内存。所谓的内存泄漏简单来说是不再用到的内存,没有及时释放。为了更好避免内存泄漏,我们先介绍Javascript垃圾回收机制。在C与C++等语言中,开发人员可以直接控制内存的申请和回收。但是在Java、C#、JavaScript语言中,变量的内存空间的申请和释放都由程序自己处理,开发人员不需要关心。也就是说J...原创 2019-06-23 17:49:10 · 207 阅读 · 0 评论 -
JavaScript 为什么要有 Symbol 类型?
Symbols 是ES6引入了一个新的数据类型 ,它为JS带来了一些好处,尤其是对象属性时。 但是,它们能为我们做些字符串不能做的事情呢?在深入探讨Symbol之前,让我们先看看一些 JavaScript 特性,许多开发人员可能不知道这些特性。背景js 中的数据类型总体来说分为两种,他们分别是:值类型和 引用类型值类型(基本类型):数值型(Number),...原创 2019-06-24 17:59:58 · 504 阅读 · 0 评论 -
深入理解 JavaScript 执行上下文和执行栈
如果你是一名 JavaScript 开发者,或者想要成为一名 JavaScript 开发者,那么你必须知道 JavaScript 程序内部的执行机制。执行上下文和执行栈是 JavaScript 中关键概念之一,是 JavaScript 难点之一。 理解执行上下文和执行栈同样有助于理解其他的 JavaScript 概念如提升机制、作用域和闭包等。本文尽可能用通俗易懂的方式来介绍这些概念。...原创 2019-06-24 17:59:14 · 371 阅读 · 0 评论 -
经典面试题:浏览器是怎样解析CSS的?
一旦 CSS 被浏览器下载,CSS 解析器就会被打开来处理它遇到的任何 CSS。这可以是单个文档内的 CSS、<style>标记内的 CSS,也可以是 DOM 元素的style属性内嵌的 CSS。所 有 CSS 都根据语法规范进行解析和标记。解析完成后,就会生成有一个包含所有选择器、属性和属性各自值的数据结构。例如,考虑以下 CSS:.fancy-button { ...原创 2019-06-24 17:58:21 · 508 阅读 · 0 评论 -
灵活使用 console 让 js 调试更简单
Web 开发最常用的高度就是console.log,虽然console.log占有一席之地,但很多人并没有意识到console本身除了基本log方法之外还有很多其他方法。 适当使用这些方法可以使调试更容易,更快速,更直观。console.log()在console.log中有很多人们意想不到的功能。虽然大多数人使用console.log(object)来查...原创 2019-06-24 17:57:26 · 230 阅读 · 0 评论 -
JavaScript是如何工作的:引擎,运行时和调用堆栈的概述!
本文是旨在深入研究JavaScript及其实际工作原理的系列文章中的第一篇:我们认为通过了解JavaScript的构建块以及它们是如何工作的,将能够编写更好的代码和应用程序。我们还将分享构建SeStHealsStad时使用的一些经验法则,这是一个轻量级的 JavaScript 应用程序,必须保持健壮和高性能以保持竞争力。如GitHut 统计数据所示,在GitHub中的活动存...原创 2019-06-24 17:56:30 · 219 阅读 · 0 评论 -
Web 性能优化:Preload与Prefetch的使用及在 Chrome 中的优先级
今天,我们将深入研究Chrome 的网络栈,以明确 web 加载原语(如<link rel= preload >&<link rel= prefetch >) 背后的工作原理,以便你能够更有效地使用它们。如其他文章所述,preload是一个声明式fetch,可以强制浏览器在不阻塞document的onload事件的情况下请求资源。...原创 2019-06-24 17:55:41 · 784 阅读 · 0 评论 -
JavaScript 是如何工作的:JavaScript 的内存模型
// 声明一些变量并初始化它们var a = 5;let b = "xy";const c = true;// 分配新值a = 6;b = b + "z";c = false; // 类型错误:不可对常量赋值作为程序员,声明变量、初始化变量(或不初始化变量)以及稍后为它们分配新值是我们每天都要做的事情。但是当这样做的时候会发生什么呢? JavaScript...原创 2019-06-24 17:52:37 · 294 阅读 · 0 评论 -
JavaScript 是如何工作的:JavaScript 的共享传递和按值传递
摘要:原始数据类型和引用数据类型的副本作为参数传递给函数。原文:JavaScript 是如何工作的:JavaScript 的共享传递和按值传递 作者:前端小智Fundebug经授权转载,版权归原作者所有。这是专门探索 JavaScript 及其所构建的组件的系列文章的第 22 篇。如果你错过了前面的章节,可以在这里找到它们:JavaScript 是如何工作的:引擎,运行...原创 2019-06-24 17:51:39 · 211 阅读 · 0 评论 -
JavaScript 新语法详解:Class 的私有属性与私有方法
proposal-class-fields与proposal-private-methods定义了 Class 的私有属性以及私有方法,这 2 个提案已经处于 Stage 3,这就意味着它们已经基本确定下来了,等待被加入到新的 ECMAScript 版本中。事实上,最新的 Chrome 已经支持了 Class 私有属性。那么,对于 Class 的私有属性与私有方法,它们究竟是...原创 2019-06-24 17:50:02 · 431 阅读 · 0 评论 -
JavaScript 原型的深入指南
不学会怎么处理对象,你在 JavaScript 道路就就走不了多远。它们几乎是 JavaScript 编程语言每个方面的基础。事实上,学习如何创建对象可能是你刚开始学习的第一件事。对象是键/值对。创建对象的最常用方法是使用花括号{},并使用点表示法向对象添加属性和方法。let animal = {}animal.name = 'Leo'animal.energy = 10...原创 2019-06-24 17:49:24 · 155 阅读 · 0 评论 -
搞懂 JavaScript 继承原理
在理解继承之前,需要知道 js 的三个东西:什么是 JS 原型链 this 的值到底是什么 JS 的 new 到底是干什么的1. 什么是 JS 原型链?我们知道 JS 有对象,比如var obj = { name: "obj" };我们通过控制台把 obj 打印出来:我们会发现 obj 已经有几个属性(方法)了。那么问题来了:valueOf / toS...原创 2019-06-23 17:57:20 · 245 阅读 · 0 评论 -
JS 的 4 种数组遍历方法:for / forEach() / for-in / for-of
我们有多种方法来遍历 JavaScript 的数组或者对象,而它们之间的区别非常让人疑惑。Airbnb 编码风格禁止使用 for/in 与 for/of,你知道为什么吗?这篇文章将详细介绍以下 4 种循环语法的区别:for (let i = 0; i < arr.length; ++i) arr.forEach((v, i) => { /* ... */ }) for...原创 2019-06-23 17:55:58 · 1077 阅读 · 0 评论 -
深入理解JavaScript作用域和作用域链
前言JavaScript 中有一个被称为作用域(Scope)的特性。虽然对于许多新手开发者来说,作用域的概念并不是很容易理解,本文我会尽我所能用最简单的方式来解释作用域和作用域链,希望大家有所收获!作用域(Scope)1. 什么是作用域作用域是在运行时代码中的某些特定部分中变量,函数和对象的可访问性。换句话说,作用域决定了代码区块中变量和其他资源的可见性。可能这两句话并不好理...原创 2019-06-23 17:54:57 · 200 阅读 · 0 评论 -
深入理解 JavaScript 执行上下文和执行栈
前言如果你是一名 JavaScript 开发者,或者想要成为一名 JavaScript 开发者,那么你必须知道 JavaScript 程序内部的执行机制。执行上下文和执行栈是 JavaScript 中关键概念之一,是 JavaScript 难点之一。 理解执行上下文和执行栈同样有助于理解其他的 JavaScript 概念如提升机制、作用域和闭包等。本文尽可能用通俗易懂的方式来介绍这些概念...原创 2019-06-23 17:53:34 · 218 阅读 · 0 评论 -
JavaScript大师必须掌握的12个知识点
为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。既然你对这篇文章感兴趣,我想你应该是一位前端开发,也许你有一份不错的工作、自主创业甚至是一位自由从业者。不知你的前端技术如何,也许你是一位新手,亦或是一位资深开发。 如果你想让自己成为一个 JavaScript 大师,在此我列出 12 条必备知识:1. 控制流(Control Flow)我们从最基础...原创 2019-06-23 17:52:16 · 380 阅读 · 0 评论 -
JS常用正则表达式备忘录
正则表达式或“regex”用于匹配字符串的各个部分 下面是我创建正则表达式的备忘单。匹配正则使用.test()方法let testString = "My test string";let testRegex = /string/;testRegex.test(testString);匹配多个模式使用操作符号|const regex = /yes|no...原创 2019-06-23 17:49:58 · 132 阅读 · 0 评论 -
5分钟掌握JavaScript小技巧
1. 删除数组尾部元素一个简单的用来清空或则删除数组尾部元素的简单方法就是改变数组的length属性值。const arr = [11, 22, 33, 44, 55, 66];// truncantingarr.length = 3;console.log(arr); //=> [11, 22, 33]// clearingarr.length = 0...原创 2019-06-22 17:21:24 · 107 阅读 · 0 评论 -
JS中将变量转为字符串
对于JavaScript,有3种不同方法可以将变量转换为字符串。这篇博客将详细介绍这些方法,并比较他们的优劣。3种方法将变量转换为字符串的3种方法如下:value.toString() "" + value String(value)当value为null或者undefined时,第1种方法就不行了。而方法2和方法3基本上是一样的。""+value: 将value与空字符...原创 2019-06-22 17:20:24 · 7532 阅读 · 0 评论 -
10个JavaScript常见BUG及修复方法
如今网站几乎100%使用JavaScript。JavaScript看上去是一门十分简单的语言,然而事实并不如此。它有很多容易被弄错的细节,一不注意就导致BUG。1. 错误的对this进行引用在闭包或则回调中,this关键字的作用域很容易弄错。举个例子:Game.prototype.restart = function () { this.clearLocalStorag...原创 2019-06-22 17:19:21 · 1003 阅读 · 0 评论 -
前端-TypeScript VS JavaScript 深度对比
TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 JavaScript 之间又有什么样的区别呢?在选择开发语言时,又该如何抉择呢?本文将会深入对比这两种语言,讨论两种语言之间的关联和差异,并概述两种语言各自的优势。JavaScr...原创 2019-06-20 17:53:57 · 318 阅读 · 0 评论 -
前端主流的 Javascript,缺失了哪些技能?
最近这几年,Javascript 的使用规模有了很大的增长。在这篇博文里,本文作者将和大家探讨现在 Javascript 还缺少的内容。以下为译文:注:我将只列出我自己认为最重要的功能缺失。虽然现在的 JavaScript 还有很多有用的功能没有实现,但本文中,我不想罗列太多。 我的选择是很主观的。 几乎所有在本博客中提到的内容都在TC39的候选列表中。也就是说,您...原创 2019-06-20 17:52:20 · 186 阅读 · 0 评论