4
头图

JavaScript 是一门弱类型的动态脚本语言,支持多种编程范式,包括面向对象和函数式编程,被广泛用于 Web 开发。

一般来说,完整的 JavaScript 包括以下几个部分:

  • ECMAScript,描述了该语言的语法和基本对象
  • 文档对象模型(DOM),描述处理网页内容的方法和接口
  • 浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口

它的基本特点如下:

  • 是一种解释性脚本语言(代码不进行预编译)。
  • 主要用来向 HTML 页面添加交互行为。
  • 可以直接嵌入 HTML 页面,但写成单独的 js 文件有利于结构和行为的分离。

本期技术周刊一起了解下 JavaScript ,欢迎大家阅读 ~

文章推荐

《如何在 JavaScript 中使用高阶函数》作者:chuck

你也许听说过,JavaScript 函数是一等公民。这意味着,在 JavaScript 中函数是对象。

它们的类型是 Object,它们可以作为一个变量的值被分配,而且它们可以像其他引用变量一样被传递和返回。

一等函数赋予了 JavaScript 特殊的能力,使我们能够从高阶函数中获益。

由于函数是对象,且 JavaScript 是流行的编程语言之一,因此其支持函数式编程的原生方法。

事实上,一等函数是 JavaScript 的原生方法。我敢打赌你在使用他们的时候甚至都没有想过正在使用函数。

《一个关于 D3js 学习的仓库建立了!》 作者:wlove

  • D3 内部模块的深入讲解 有一个系统整体认知
  • Analysis- examples 分析场景的例子
  • Observable D3 团队分享示例的环境介绍

第一点作为重点, 本系列会完整涵盖 D3 概念, 比如:选择、连接、数据请求、缩放函数、事件处理和转换。

《我让虚拟 DOM 的 diff 算法过程动起来了》 作者:街角小林

去年写了一篇文章手写一个虚拟 DOM 库,彻底让你理解 diff 算法介绍虚拟 DOM 的 patch 过程和 diff 算法过程,当时使用的是双端 diff 算法,今年看到了 Vue3 使用的已经是快速 diff 算法,所以也想写一篇来记录一下,但是肯定已经有人写过了,所以就在想能不能有点不一样的,上次的文章主要是通过画图来一步步展示 diff 算法的每一种情况和过程,所以就在想能不能改成动画的形式,于是就有了这篇文章。当然目前的实现还是基于双端 diff 算法的,后续会补充上快速 diff 算法。

《JavaScript 的异步编程之 Promise》 作者:开水泡饭

一种更优的异步编程统一 方法,如果直接使用传统的回调函数去完成复杂操作就会形成回调深渊

// 回调深渊
$.get('/url1'() => {
  $.get('/url2'() => {
    $.get('/url3'() => {
      $.get('/url4'() => {
        $.get('/url5'() => {
          // 大概就是这样子的
        })
      })
    })
  })
})

CommonJS 社区提出了 Promise 规范,在 ES2015 中被标准化,成为语言规范。当等待状态改编程成功或者失败之后就再也不能再被改变了,成功的时候触发 onFulfilled 回调,失败的时候触发 onRejected 回调

《借助 CI / CD 实现前端应用的快速回滚》 作者:皮小蛋

在上一轮优化里,我们通过优化一些构建工具和流程,把构建耗时优化到了 4min 左右,整体发布耗时从 15min 优化到了 8 min 左右, 有较大提升, 但是依旧存在提升空间。经过一些思考与测试,给出技术方案,并落地到了 WMS 业务中, 效果如下:

图片

与原流程相比之, 发布耗时由 8 min 降低到了 1 ~2 min 左右。下面我主要介绍一下方案细节,总结改造过程中遇到的问题, 希望对大家有所帮助。

《JavaScript 中的可变性与不可变性》 作者:记得要微笑

还是先来看看关于可变性( Mutability )的教条式定义:“liable or subject to change or alteration (译者注:真他妈难翻,就简单理解成'易于改变的'吧)”。在编程领域里,我们用可变性 (Mutability )来描述这样一种对象,它在创建之后状态依旧可被改变。那当我们说不可变( Immutable )时,就是可变( Mutable )的对立面了(译者注:原谅我翻的废话又多起来) - 意思是,创建之后,就再也不能被修改了。

如果我说的又让你感到诡异了,原谅我小小的提醒一下,其实我们平时使用的很多东西事实上都是不可变的哦!

var statement = 'I am an immutable value';
var otherStr = statement.slice(8, 17);

问答推荐


# SegmentFault 技术周刊 #

「技术周刊」是社区特别推出的技术内容系列,一周一主题。

每周二更新,欢迎「关注」。大家也可以在评论处留言自己感兴趣的主题,推荐主题相关的优秀文章。

如有问题可以添加小姐姐微信~

image.png


Beverly
882 声望2.1k 粉丝

怂人面前全是坑,努力填坑 。


引用和评论

0 条评论