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);
问答推荐
- js 中按位运算会出现精度丢失的问题吗?
- js 自动激活当前窗口,如何实现?
- js 数组的处理?
- js 去重并统计数量,然后去重后的子级再添加到父级的数组里去。该怎么写呀?
- JavaScript 触发 popstate 条件,怎么绕开“用户点击页面”?
- JS 中如何改造同步 ajax 方法变为异步并让函数返回值保持为请求结果?
- js 函数有 2 个参数,元素行内调用该函数如何能只传一个值?
- JavaScript 手写最大并发请求数?
- 请问 js 中如何降低 alert 的执行优先级?
# SegmentFault 技术周刊 #
「技术周刊」是社区特别推出的技术内容系列,一周一主题。
每周二更新,欢迎「关注」。大家也可以在评论处留言自己感兴趣的主题,推荐主题相关的优秀文章。
如有问题可以添加小姐姐微信~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。