站内搜索

本次搜索找到结果 68 条

我们知道,JavaScript 不管是操作 DOM,还是执行服务端任务,不可避免需要处理许多异步调用。在早期,许多开发者仅仅通过 JavaScript 的回调方式来处理异步,但是那样很容易造成异步回调的嵌套,产生 “Callback Hell”。

这可能是最简单易懂的函数式编程介(扯)绍(淡)了

目前前端界(以及其他一些领域)对函数式编程大体上两种态度,一些人是觉得函数式编程特牛逼,尤其是现在许多新生的框架和库都在标榜自己的函数式特征。而另一些人,又觉得函数式编程学起来很难,而且似乎也没有什么卵用,理由是在自己经历的项目里面很难看到具体的函数式编程应用场景,甚至其中许多人认同一个观点,觉得函数式编程只适合于学术研究,很难在工程项目中实际使用。

依次执行多项异步任务

有时候,我们希望批量执行一组异步任务,但是不是并行,而是依次执行,这组任务是动态的,在一个数组里,当然我们可以用 for 循环然后一个一个 await 执行,但是还有另外一种方式:

大家都知道 JavaScript 的对象属性默认是可以被从外部访问和修改的,也就是说,JavaScript 本身不存在完全“私有”的对象属性。例如:

class Point{
    constructor(x, y){
        this._x = x;
        this._y = y;
    }
    get length(){
        const {_x, _y} = this;
        return Math.sqrt(_x * _x + _y * _y);
    }
}

let p = new Point(3, 4);
console.log(p._x, p._y, p.length); //3, 4, 5

在上面的代码里,我们约定俗成地用下划线开头来表示私有变量。我们希望 _x、_y 不被外部访问,然而,这只是我们一厢情愿,使用者还是可以访问到这两个变量。

在这里,我们不讨论 ES 的 private 标准提案,而是讨论如何使用工具来将约定变成真正的私有。

最近 webpack 成为非常流行的打包工具,很多项目都在使用它。在我们进行 JavaScript 独立组件开发的时候,如果我们想要使用语言新特性,又想发布的时候产出兼容性好的代码,那么使用 webpack 就能够很大程度上帮助我们实现这一目标。

现在让我们来看看究竟该怎么做吧。

最近在给学生上课,上周六的第一堂课是关于 JavaScript 动画的内容,其中包括一些简单的动画,比如匀速或者匀加/减速的运动,也包括复杂一些的组合动画。而动画的基本原理,在我之前的文章已经有了详细的介绍。在这里,我想谈一谈的是,我们可以如何针对现代浏览器设计更加简单的 API,来实现动画的序列播放。

昨天给奇舞团小伙伴们开年度总结会。JK大大为我们捐了10个小水滴摄像机,在开会前5分钟,裕波临时说要写一个抽奖程序,现场抽10名中奖的小伙伴,于是这个抽奖任务就理(莫)所(名)当(其)然(妙)地落到了我这个团长的头上。

闲话少说,那么如何在开会前现场写一个抽奖程序,满足这一要求呢?

原文:http://www.zcfy.cc/article/2221

函数式编程在 JavaScript 界已经成为了一个非常热门的话题。而仅在几年之前,还几乎没有 JavaScript 程序员了解函数式编程是什么,但在最近三年里,我看到非常多的应用程序代码库里大量使用着函数式编程思想。

今天是奇舞前端特训营 JavaScript 课程的第一天。下午的时候给学生介绍 JavaScript 的基本类型,例子中有个有趣的问题,因为时间仓促,没能详细解释。所以写一篇文章来解释,正好也考考大家:

问题:为什么 [ ] == false,而 !![ ] == true?

这是 奇舞前端特训营 JavaScript 培训课程 的节选。很多同学觉得写 JavaScript 很简单,只要能写出功能来,效果能实现就好。还有一些培训机构,专门教人写各种“炫酷特效”,以此让许多人觉得这些培训很“牛逼”。然而事实上,能写 JavaScript 和写好 JavaScript 这中间还有很遥远的距离。成为专业前端,注定在 JavaScript 路途上需要一步步扎实的修炼,没有捷径。