首页
学习
活动
专区
圈层
工具
发布

代码整洁的 JavaScript

这不是一个代码风格指南, 它是一个使用 JavaScript 来生产 可读的, 可重用的, 以及可重构的软件的指南。 这里的每一项原则都不是必须遵守的, 甚至只有更少的能够被广泛认可。...当软件架构与建筑架构一样古老时, 也许我们将会有硬性的规则去遵守。 而现在, 让这些指南做为你和你的团队生产的 JavaScript 代码的 质量的标准。...它是一个常规 JavaScript 的优秀的替代品, 因为它在标准的 JavaScript 语法之上为你提供静态类型。...保持你的 JavaScript 简洁, 编写良好的测试, 并有良好的代码审阅, 否则使用 TypeScript (就像我说的, 它是一个伟大的替代品)来完成这些。...这样做的巨大益处是降低模块间的耦合。 耦合是一个非常糟糕的开发模式, 因为会导致代码难于 重构。 如上所述, JavaScript 没有接口, 所以被依赖的抽象是隐式契约。

1.2K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    面向对象的JavaScript代码

    编程中有一种数据类型叫对象,就是一种将数据的行为和数据本身归类的方法。这样能帮助设计并理解大段的代码。...事实上,面向对象的编程方法在许多程序语言中都有,很多软件都是靠它编写出来的,大家普遍认为它是一种良好的编写代码的方法。 之前我们已经学过JavaScript中的对象了。 一个对象可以有一些属性,方法。...就是像之前说的,人类大脑很会将东西归类:一艘船,一张椅子,一头麋鹿等。写代码时,创建对象能帮助我们思考如何将代码中的不同部分组合在一起,当然最好还能一起运行。 一个庞大的程序里可能会有许多对象互动。...JavaScript用的是原型继承,意思就是当一个对象继承另一个对象时,母对象就成为子对象的原型。...---- 往期精选文章 使用虚拟dom和JavaScript构建完全响应式的UI框架 扩展 Vue 组件 使用Three.js制作酷炫无比的无穷隧道特效 一个治愈JavaScript疲劳的学习计划 全栈工程师技能大全

    68310

    JavaScript 相关的工具代码

    博客地址:https://ainyi.com/49 记录一些数据处理需要的方法工具代码 持续更新中......; } } setTimeout(incrementNumber, 500); 可见,在使用超时调用 setTimeout 代替 setInterval 时,没有必要追踪调用 ID,因为在每次执行代码之后...[...Array(3).keys()] // [0, 1, 2] Lodash 推荐使用 Lodash 工具,这是一个一致性、模块化、高性能的 JavaScript 实用工具库 官方文档地址:https...://www.lodashjs.com 使用理由: Lodash 通过降低 array、number、objects、string 等等的使用难度从而让 JavaScript 变得更简单。...Lodash 的模块化方法 非常适用于: 遍历 array、object 和 string 对值进行操作和检测 创建符合功能的函数 例如: // 只需要拷贝对象里特定的某几个值 var object =

    1.1K30

    JavaScript代码规范

    编码规范 统一团队的编码规范,有助于代码的维护。本章是传统意义上的 Style Guideline,目的是统一一些相对主观化的代码风格。...在日常的项目中,保留拖尾换行的好处是,可以减少版本控制时的代码冲突。...{ 'foo': 'haha' } 构造函数首字母大写 在 JavaScript 中 new 操作符用来创建某个特定类型的对象的一个实例,该类型的对象是由一个构造函数表示的。...,往往会造成代码的可读性差,但有些时候,短的链式调用并不会影响美观。...在很多情况下,JavaScript 引擎可以确定一个分号应该在什么位置然后自动添加它。此特征被称为 自动分号插入 (ASI),被认为是 JavaScript 中较为有争议的特征。

    2.9K30

    编写可测试的JavaScript代码

    一、可测试的JavaScript A.现有技术 1.敏捷开发 ①使用敏捷开发,并不一定意味着应用程序完成得更快且质量更高,敏捷开发最大的优势是它处理需求变更的方式。...B.代码是让人用的 1.我们编写的代码不是让电脑用的,而是让人用的 2.为何要编写可测试的代码 可测试的代码更加容易测试,意味着它更加容易维护,易维护则意味着它有让人(包括自己)更加容易理解 ,更加容易维护...2.依赖注入器可以为代码构建和注入完全成型的对象。 J.注释 1.对于可测试的JavaScript,所有即将要测试的函数或方法前面都有相应的注释。...E.运行客户端JavaScript单元测试 1.PhantomJS 2.Selenium F.运行服务器端JavaScript单元测试 1.jasmine 五、代码覆盖率 为代码覆盖率信息构建相应的JS...B.代码覆盖率数据 1.代码覆盖率数据分为两部分,代码行的覆盖率和函数的覆盖率。

    1.7K30

    编写可测试的JavaScript代码

    编写可测试的JavaScript代码 既然要对代码进行测试,那么为什么不让这一过程变得尽可能简单和轻松呢?JavaScript客户端代码测试之所以尤其困难,是因为我们几乎无法控制代码运行的环境。...服务端JavaScript给了我们更多的控制权,以便我们能够从总体上控制执行环境。然而,Rhino和Node.js应用程序不像其他语言一样有完整的成熟工具、测试程序以及生态系统。...无论如何,测试——尤其是JavaScript测试——是很复杂的。克服这种复杂性的最好办法是完全控制自己实际所控制的东西:代码。...代码是连续存在的,一方面是从别人的代码到自己的代码,另一方面是从遗留代码到非遗留代码。 什么是遗留代码(legacy code)?...即便如此,你愿意将这些未经测试的产品代码推到市场上吗? 即使代码之前“能用”,之后你还能继续满意吗?拥有该代码的公司也是同样满意吗?因此,通常的结果都是付费重写。

    68500

    Javascript -- 基于Javascript范畴代码风格和规范的总结

    统一下代码的一些风格规范,其一是好看啊,看着爽呗, 其二是容易排错吧,可能还有后续 先学会看 目前市面上有一套完备体系的Javascript编程规范有哪些?...; } 因为Javascript会自动添加句末的分号,导致一些难以察觉的错误。 用"==="还是"=="好?...参考文献 cnode社区- node编程规范征集 阮一峰的网络日志 - Javascript编程风格 github-fex-team - Javascript编码规范 fengmk2 - 我的nodejs...编程规范 备注:访问时已经打不开,我是查阅源代码看的,比较鸡肋 drupal - JavaScript coding standards github-iFrame - Node编码规范 github-iFrame...- Node陷阱与优化 Crockford - JavaScript代码规范 相关链接 Douglas Crockford博客:https://www.crockford.com/mckeeman.html

    1.6K20

    javascript 之隐藏你的代码

    短”字加了引号,只是因为它看起来短,实际并不短,因为字节还是在的,在 unicode 里有一种神奇的字符叫 零宽空白,它的特点是字型的显示宽度为 0,无论堆了多少个零宽字符,你都看不见它。...藏了大量的零宽字符,实际看起来就好像是一个空字符串 “”,这个“空”字串即是 md5 的函数定义经过编码转换后得到的全零宽字符串,此创意最初源自一个叫z.js 的库。...的字串,把 1 替换成 U+200C,把 0 替换成 U+200D 就得到一个全零宽空白的字符串,每 8 位零宽字符可用于表示 1 个 ascii字符,所以例子当中,理论上是变长的,不算解码程序的 129...个字符,仅空白就占了原文 8 倍的体积,如果出现中文,那就更不止了,因为中文已经超过了 ascii 的范围,需要先转成纯 ascii (如以 \uxxxx 表示)后再处理。...(点代码框右上角运行即可) var code = hider('alert("测试一下。。")'); console.log(code);

    1.5K10

    Javascript中的继承示例代码

    面向对象的语言必须具备四个基本特征: 1.封装能力(即允许将基本数据类型的变量或函数放到一个类里,形成类的成员或方法) 2.聚合能力(即允许类里面再包含类,这样可以应付足够复杂的设计) 3.支持继承...(父类可以派生出子类,子类拥有父母的属性或方法) 4.支持多态(允许同样的方法名,根据方法签名[即函数的参数]不同,有各自独立的处理方法) 这四个基本属性,javascript都可以支持,所以javascript...确实是一种弱类型的面向对象的语言,这里给出一个简单的类继承的代码 javascript"> //父类ClassA function ClassA(sColor)...ClassB,继承自ClassA function ClassB(sColor,sName){         ClassA.call(this,sColor);//利用call函数,将ClassA的所有方法都赋给...oClassB.sayName();//这是ClassB中的新方法 /* call函数的演示示例 function sayColor(sPrefix, sSuffix) { alert(sPrefix

    1.2K80

    提高 javascript 代码效率的技巧

    ✨ 变量声明 多个变量的声明,可以简写 // 非效率写法 let x; let y; let z = 520; // 效率写法 let x, y, z = 520; ✨ 三元运算符 在条件判断时,可以使用三元运算符增加效率...'极客飞兔', y = '程序员'; // 非效率写法 const temp = x; x = y; y = temp; // 效率写法 [x, y] = [y, x]; ✨ 箭头函数 函数的简写方式...num1 + num2; } // 效率写法 const add = (num1, num2) => num1 + num2; ✨ 字符串模版 // 非效率写法 console.log('极客飞兔的年龄...' + age + ' 他的身高 ' + height); // 效率写法 console.log(`极客飞兔的年龄 ${age} 他的身高 ${height}`); ✨ 多值匹配 判断某个值是否等于某个多个值中的一个...是奇数 } // 效率写法 2 & 1; // 0 返回0表示偶数 3 & 1; // 1 返回1表示奇数 ✨ 数组去重 const array = [5,4,7,8,9,2,7,5]; // 效率的两种写法

    1.1K73

    怎样编写更好的 JavaScript 代码

    作者:Ryland G 翻译:疯狂的技术宅 来源:dev.to ? 我看到没有多少人谈论改进 JavaScript 代码的实用方法。以下是我用来编写更好的 JS 的一些顶级方法。...但是这个代码不是产生有效的 JavaScript,而是导致无效的 TypeScript,因为现在使用它的 1000 个位置提供了错误的类型。...使用现代功能 JavaScript 是世界上最流行的编程语言之一。你可能会认为,有大约数百万人使用的 JS 现在已经有 20 多岁了,但事实恰恰相反。...在 JavaScript 中,只有绝对必要时才应使用传统的 for 循环。...很多时候让 Prettier 在每次提交到 repo 时自动运行是非常有意义的。这确保了进入源码控制系统的所有代码都有一致的样式和结构。 测试你的代码 编写测试是一种间接改进你代码但非常有效的方法。

    1.8K30
    领券