Source Code - JavaScript - 学习优雅的编码
宁静致远。
说明
- 知识在不断迭代,除了学习资料,那就是学习他人,来丰富自己。
- 以下全是别人的源码,会标明出处,非常感谢原作者,非常感谢开源。
优雅
- mitt:源码,微型库解读之200byte的EventEmitter - Mitt
- axios: 源码
- 零散:12 useful hacks
mitt
// source codeall = all || Object.create(null);
- 短路运算符:详情MDN
- Object.create(null):生成的对象是一个原型为空的对象。节约内存且避免冲突,因为没有原型,且普通对象原型上的属性和方法也相应没有了。
// source code(all[type] || (all[type] = [])).push(handler);
// my code - badif (all[type]) {all[type].push(handler)} else {all[type] = [handler]}
- 简洁的队列赋值:短路逻辑判断 + 初始化 + 更新数组,简直不要太优雅。
// source codeall[type].splice(all[type].indexOf(handler) >>> 0, 1);
- 按位操作符:1 >>> 0 = 1, -1 >>> 0 = 4294967295, 详情MDN
- 补充:按位操作符'~',可以结合.indexOf()使用,因为对任一数值 x 进行按位非操作的结果为 -(x + 1),即:~-1 = 0
// source code(all[type] || []).slice().map((handler) => { handler(evt); });(all['*'] || []).slice().map((handler) => { handler(type, evt); });
- Array.slice():slice不传参数的时候,相当于浅复制一个数组,详情MDN
axios
// source code别着急
零散
// source code!!(0) // false!!(null) // false!!('') // false!!(undefined) // false!!(NaN) // false!!(2) // true
- !!: 强制转换成 boolean 类型,相当于 !(!val)。如果 val = 0/null/""/undefined/NaN 时,!!(val) = false,如果 val 是其他值,!!(val) = true
- !: 取反运算,返回的也是一个 boolean 类型。如果 val = 0/null/""/undefined/NaN 时,!(val) = false,如果 val 是其他值,!(val) = true
// source code+'123456' // 123456, Number+new Date() // 1527684413484, 相当于 new Date().getTime()
- +: +val 将字符串数字转为数字。如果 val 是非字符串数字,则 +val = NaN
好记性不如烂笔头。
Source Code - JavaScript - 学习优雅的编码相关推荐
- UI5 Source code map机制的细节介绍
在我的博客A debugging issue caused by source code mapping里我介绍了在我做SAP C4C开发时遇到的一个曾经困扰我很久的问题,最后结论是这个问题由于Jav ...
- JavaScript学习笔记(一)-Learning Advanced JavaScript
JavaScript学习笔记 (一)- Learning Advanced JavaScript Learning Advanced JavaScript #2: Goal: To be able t ...
- 原来Github上也有这么多的JavaScript学习资源!
程序员书库(ID:OpenSourceTop) 编译 书单来自:https://risingstars.js.org/2019/en/ 最近,bestofjs发布了2019年度JavaScript年度 ...
- 【论文笔记】 Reinforcement-Learning-Guided Source Code Summarization using Hierarchical Attention
1 INTRODUCTION 软件维护blablabla--代码注释blablabla-- 好的代码注释应具有以下特征:(1) 正确性,正确地阐明代码的意图:(2) 流利,使维护者易于阅读和理解:(3 ...
- javascript学习_真正学习javascript
javascript学习 So, you think you know JavaScript. You can write conditional statements galore, have ma ...
- A Transformer-based Approach for Source code Summarization 翻译
A Transformer-based Approach for Source Code Summarization 全文翻译 本文最佳阅读方式:读完一段中文内容快速阅读对应的英文部分 欢迎关注我的公 ...
- JavaScript 学习手册二
JavaScript 学习手册二:JS 数据类型 第1关:JavaScript 数据类型介绍 任务描述 本关任务:在函数 objectTest() 内部定义了六个变量 a.b.c.d.e.f,并已经赋 ...
- A Novel Neural Source Code Representation based on Abstract Syntax Tree--ICSE2019
一种新型的基于源代码表示的一种方法 最新的研究表明,基于AST的神经模型可以更好地表示源代码.然而AST的规模通常较大,现有的模型容易出现长期依赖的问题. 本文提出了ASTNN,一种新的基于AST的源 ...
- 【综述笔记】 A survey of automatic generation of source code comments Algorithms and techniques
A survey of automatic generation of source code comments Algorithms and techniques ABSTRACT 代码注释存在问题 ...
最新文章
- Python Beautiful Soup类的基本元素
- VirtualBox Ubuntu虚拟机串口编程
- Python编程的若干个经典小技巧
- 中国桑叶市发展态势分析与前景动态预测报告场2022-2028年版
- Serializable接口中serialVersionUID字段的作用
- 野生前端的数据结构练习(1)——栈
- Fluent Web API集成测试
- opc怎么在计算机上测试,OPC测试
- 一个数字几个字节_技术工坊40期-DAG技术特性以及在字节雪球Obyte项目的使用实践...
- 怒:排序这样的最基本功能都错了,你们竟然不感到羞耻?不反思工作?
- 48小时备考TOGAF经验分享
- mx350显卡天梯图_2020年显卡天梯图(2020.04月更新)
- 双向电平转换芯片TXB0304应用笔记
- js-js数据结构和算法-递归思想-斐波那契数-动态规划-贪心
- 以太网卡支持的工作模式
- 华为Android10怎样root,华为M2平板10.0怎么ROOT 华为M2超级权限图文教程
- fdct算法 java_ImageSharp源码详解之JPEG压缩原理(3)DCT变换
- [人工智能-深度学习-59]:生成对抗网络GAN - 基本原理(图解、详解、通俗易懂)
- idea 的 maven 项目报错:The program‘s entry point class ‘xxx‘ was not found in the jar file.
- configSections(配置文件)