• JavaScript和TypeScript中的symbol[每日前端夜话0xC0]
    每日前端夜话0xC0每日前端夜话,陪你聊前端。正文共:789 字预计阅读时间:5 分钟作者:@ddprrt翻译:疯狂的技术宅来源:fettblogsymbol 是 JavaScript 和 TypeScript 中的原始数据类型,可用于对象属性。与 number 和 string 相比,symbol 具有一些独特的功能,使它脱颖而出。JavaScript 中的符号可以用 Symbol() 工厂函数创建符号:1constTITLE=SymbolSymbol 没有构造函数。TypeScript中的符号TypeScript 完全支持符号,它是类型系统中的主要成员。unique symbol 与声明紧密相关,只允许在 const 声明中引用这个确切的符号。你可以将 TypeScript 中的名义类型视为 JavaScript 中的名义值。运行时枚举一个有趣的符号例子是在 JavaScript 中重新创建运行时的 enum 行为。TypeScript 中的 enum 是不透明的。
  • 实现一个简单的 JavaScript 状态机[每日前端夜话0xBF]
    每日前端夜话0xBE每日前端夜话,陪你聊前端。另外Krasimir Tsonev 描述了 JavaScript 中状态机的一些常用方法。一些比较流行的 JavaScript 库是 jakesgordon/javascript-state-machine 和 davidkpiano/xstate 。在本文中,我将实现一个用于 JavaScript UI 的简单的状态机。经典十字旋转门问题状态机的经典 “Hello,World” 示例是 Turnstile。我在这里用了详细模式,因此读者可以在一个地方快速看到 turnstileStates 配置背后的概念。在这个 “Hello,World” 示例中,我没有使用来自于服务器的任何数据(模型)。当我们从服务器获得这样的模型时,turnstileStates 结构中的函数可以存在一个模型参数。
  • JS和TS中的void[每日前端夜话0xBE]
    每日前端夜话0xBE每日前端夜话,陪你聊前端。void 作为运算符存在于 JavaScript 中,而作为基本类型存在于 TypeScript 中。在这两个世界中,void 的工作机制与大多数人习惯的有点不同。JavaScript 中的 voidJavaScript 中的 void 是一个运算符,用于计算它旁边的表达式。无论评估哪个表达式,void总是返回undefined。在公众号内回复“体系”查看高清大图长按二维码,加大鹏老师微信好友拉你加入前端技术交流群唠一唠怎样才能拿高薪往期精选BootstrapVue 入门JavaScript的工作原理:引擎、运行时和调用堆栈用 TypeScript 开发 Node.js 程序快速上手最新的 Vue CLI 3JavaScript 程序员可以从C ++中学到些什么在同一基准下对前端框架进行比较Edge 拥抱 Chromium 对前端工程师意味着什么?
  • 把 WebAssembly 用于提升速度和代码重用[每日前端夜话0xBC]
    对于名称中带有 assembly 的语言,WebAssembly 是低级的。系统语言都具有两个特性,这使它们适合被编译为 WebAssembly。谈到高性能 Web 代码,WebAssembly 并不是唯一的选择。WebAssembly 的概述可以总结如下。几乎所有关于 WebAssembly 语言的文章都提到把近乎原生的速度作为语言的主要目标之一。WebAssembly 在下载方面也有优势。浏览器将 JS 模块作为文本提取,这正是 WebAssembly 能够解决的低效率问题之一。WebAssembly 中的模块是紧凑的二进制格式,可加快下载速度。同样令人感兴趣的是 JS 和 WebAssembly 如何协同工作。冰雹序列和 Collatz 猜想生产级代码案例将使 WebAssembly 代码执行繁重的计算绑定任务,例如生成大型加密
  • Node.js 应用最佳实践:日志[每日前端夜话0xBB]
    每日前端夜话0xBB每日前端夜话,陪你聊前端。当你启动 Node.js 服务器时,如果数据库由于某些问题而没有运行,或服务器端口已经被占用时,如果没有日志,你将永远不知道服务器失败的原因。最佳实践1)日志的三个重要部分程序日志既适用于人类,也适用于机器。ELK 栈的 Filebeat 是日志 agent 的最佳选择之一。这是受到了 git merge 冲突的启发。日志不应该评估抛出异常在第7行中,userService.getUser() 可以返回 null,且 .getId() 可以抛出异常,所以要避免这些情况。1importloggerfrom'../logSetup'; 2processLoan(...){ 3logger.debug; 4 5//...process 6 7logger.debug; 8//thismightthrowerror,whengetUserreturnsundefined 910logger.debug;11returntrue;12}你应该用 Aspect js 自动执行函数级日志。日志不应产生副作用日志应该是无状态的,不应产生任何副作用。
  • [每日前端夜话0xBB]
    每日前端夜话0xBB每日前端夜话,陪你聊前端。每天晚上18:00准时推送。日志是反映程序各个方面的事件,如果能够正确编写,那么它就是最简单的故障排除和诊断程序的模式。最佳实践1)日志的三个重要部分程序日志既适用于人类,也适用于机器。ELK 栈的 Filebeat 是日志 agent 的最佳选择之一。所以要确保每个日志都有时间戳,以便我们进行排序和筛选。日志不应该评估抛出异常在第7行中,userService.getUser() 可以返回 null,且 .getId() 可以抛出异常,所以要避免这些情况。1importloggerfrom'../logSetup'; 2processLoan(...){ 3logger.debug; 4 5//...process 6 7logger.debug; 8//thismightthrowerror,whengetUserreturnsundefined 910logger.debug;11returntrue;12}你应该用 Aspect js 自动执行函数级日志。日志不应产生副作用日志应该是无状态的,不应产生任何副作用。
  • 内置于浏览器中的国际化API[每日前端夜话0xBA]
    每日前端夜话0xBA每日前端夜话,陪你聊前端。其中包括对语言敏感的日期处理。现在这可能已经不是最好的方法了,因为我们有 ECMAScript 国际化 API。浏览器将所有上述功能保留在 Intl 全局对象中,以避免发生命名冲突。月份可以表示为数字或字符串。这个项目是由 Moment.js 维护者之一发起的,他们希望提供一些不同的 API,但不想在 Moment.js 中破坏任何东西。最重要的是 Luxon 使用了国际化 API。我们还需要考虑浏览器支持。Sine Luxon 专注于使用原生 API,但并非每个浏览器都能完整的支持。国际化 API 其他很酷的功能ECMAScript Internationalization API提供了其他有用的功能。其中之一是格式化列表的能力。
  • 在 Vue.js 中使用无状态组件[每日前端夜话0xB9]
    每日前端夜话0xB9每日前端夜话,陪你聊前端。正文共:1620 字预计阅读时间:8 分钟作者:Nwose Lotanna翻译:疯狂的技术宅来源:logrocket在本文中,你将了解功能组件,并了解如何在 Vue 中使用工作流中的无状态组件。在开始之前你的PC需要以下内容:安装 Node.js version 10.x 或以上版本。Vue 状态是确定组件行为的对象。Vue 状态决定了组件的渲染方式或动态方式。Vue组件Vue.js 中的组件通常是被动的:在 Vue.js 中,数据对象可以是你可以使用的概念、计算属性、方法和观察者提供许多选项。Vue.js 中的功能组件与 React.js 中的功能组件类似。在 Vue 中,开发人员可以使用功能组件通过传递上下文轻松构建直接、整洁的组件。
  • 在 JavaScript 中新的绘图思路[每日前端夜话0xB8]
    每日前端夜话0xB8每日前端夜话,陪你聊前端。正文共:1640 字预计阅读时间:7 分钟作者:slicker.me翻译:疯狂的技术宅来源:slicker.me我曾经用 Python 海龟图形生成过这个图像,并有用 JavaScript 复制它的强烈冲动。海龟有几个简单的命令:向前/向后移动 x 步,向左/向右转 x 度等。如果海龟朝北开始,左转 90 度它将指向西。可以在 Logo和 Python 中使用海龟图形,但不能在 JavaScript 中使用。如果你玩真正的海龟图形,我建议你使用提供这种功能的 JS 库、Python 或 Logo。现在我们用 translate 来向右和向下移动坐标系 —— 也就是这些蓝色箭头。最后,我们将系统在 x 轴上移动并将其绘制为绿色。
  • 向钢铁侠学习怎样开发软件[每日前端夜话0xB7]
    每日前端夜话0xB7每日前端夜话,陪你聊前端。每天晚上18:00准时推送。学习新东西并没有什么不妥,但真正的问题是怎样在教程中使用的 Demo 之外来做一些东西。如果它像 React 或 Vue 那样的框架,它将用来开发一个 To-Do 列表程序。让我们开始吧,我们将探讨托尼在他作为钢铁侠的11年中所穿的几件主要的战衣。Mark 1这是在洞穴中建造的战衣,其中的材料是从导弹中拆出来的。在 Tony 完成设计并穿上 Mark 2 之后,他开始测试,他直接跳到了飞行测试中,用套战衣飞得很高。他之所以决定这样做,因为从长远来看,之前的能源核心并不成功。托尼面临同样的问题。
个人资料

分享Web大前端相关的独家外文咨询、技术文章、工具资源、精选课程。帮你成为有品质的大前端全栈工程师。