JS中的短路求值

短路求值是说, 只有当第一个运算数的值无法确定逻辑运算的结果时,才对第二个运算数进行求值:当AND(&&)的第一个运算数的值为false时,其结果必定为false;当OR(||)的第一个运算数为true时,最后结果必定为true。

阅读更多

将truthy/falsy转换为布尔值

你可以使用!!操作符将truthyfalsy值转换为布尔值。

阅读更多

清空数组的两种方法

如果你定义了一个数组,然后你想清空它。
通常,你会这样做:

阅读更多

向回调方法传递参数

通常下,你并不能给回调函数传递参数。 比如:

阅读更多

快速(但危险)的取整方法

本条小知识关于性能…

阅读更多

Node.js - 运行未被引用的模块

在Node里,你可以让你的程序根据其运行自require('./something.js')或者node something.js而做不同的处理。如果你想与你的一个独立的模块进行交互,这是非常有用的。

阅读更多

对数组洗牌

这段代码运用了Fisher-Yates Shuffling算法对数组进行洗牌。

阅读更多

返回对象,使方法可以链式调用

在面向对象的Javascript中为对象建立一个方法时,返回当前对象可以让你在一条链上调用方法。

阅读更多

安全的字符串拼接

假如你需要拼接一些不确定类型的变量为字符串,你需要确保算术运算符在你拼接时不会起作用。使用concat:

阅读更多

更简单的使用indexOf实现contains功能

JavaScript并未提供contains方法。检测子字符串是否存在于字符串或者变量是否存在于数组你可能会这样做:

阅读更多

模板字符串

ES6中,JS现在有了引号拼接字符串的替代品,模板字符串。

阅读更多

测量javascript代码块性能的小知识

快速的测量javascript的性能,我们可以使用console的方法,例如
console.time(label)console.timeEnd(label)

阅读更多

ES6中的伪强制参数

在许多编程语言中,方法的参数是默认强制需要的,开发人员必须明确定义一个可选的参数。在Javascript 中每一个参数都是可选的,但是我们可以利用es6参数默认值特性的优点来达到强制要求这种目的,并且不污染函数体本身。

阅读更多

变量提升

理解变量提升可以帮助你组织方法作用域。只要记住变量声明和方法声明都会被提升到顶部。变量的定义不会提升,即使你在同一行声明和定义一个变量。变量声明是让系统知道有这个变量存在而定义是给其赋值。

阅读更多

检查某对象是否有某属性

当你需要检查某属性是否存在于一个对象,你可能会这样做:

阅读更多