Latest Tips
-
Vuejs在資料綁定時會複製更新並替換目標元素
在這個提示中,我會通過一個例子向您展示Vue會如何與其它軟體衝突如果你不知道這一點。
-
选择(picking)和反选(rejecting)对象的属性
有时候我们需要将一个对象的某些属性放到白名单里,这样来说,我们有一个数组代表了一张数据库表,并且为了一些功能我们需要从中选出(
select
)一些字段。 -
为什么你应该在相等比较中使用 Object.is()
JavaScript 中一个很棒的相等比较解决方案
-
使用 tap 来快速 debug
在这里 tap 是一个小怪物。一个可以用来快速调试、链式调用、匿名函数,还可以打印任何你想打印的东西的函数。
-
Array 的三个技巧
在 JavaScript 中 数组(Array)随处可见,使用ECMAScript 6 中的新特性 扩展运算符 你可以做很多很棒事情。在这边文章中,我将为你介绍在编码中有用的3个技巧。
-
处理 Websocket 超时问题
一个控制超时的技巧
-
给函数 Bind 对象
理解在 JavaScript 中如何使用
Bind
方法绑定对象和函数 -
三个实用的javascript小技巧
分享三个让开发变得更高效的实用语法糖
-
var和ES6的let
在这个 tip,我将介绍 var 和 let 之间不同的作用域。我应该使用 let 替代 var 吗?让我们来看一下吧!
-
break 或 continue 循环函数
循环一个
list
从中寻找一个或一些值,是一个很常见的需求。但是即使我们要找的元素就是数组里的第一个,我们不也能从循环中直接return
,只能遍历整个数组。本文教你如何使用.some
和.every
快速结束循环。 -
JavaScript 的逗号操作符
在一个表达式中,由左到右计算每个表达式并返回最后一个。
-
复制到粘贴板
本周我做了一个简单的“复制到剪贴板”按钮,这是我第一次做这种功能,向大家分享一下我的实现方法。
-
用数组建立一个简单的循环
有时我们需要不停的循环数组的元素,就像一组旋转的图片,或者音乐的播放列表。这里告诉你如何使一个数组拥有循环的能力。
-
函数中如何使用可选参数(包括可选回调函数)
使函数的参数与回调函数为可选参数。
-
取得文件扩展名
如何更加高效的取得文件扩展名呢?
-
new的返回值
理解使用new与不使用new时将返回什么值
-
简单监听DOM事件
简单而优雅地操作DOM事件的方法
-
实用的`log`技巧
运用
&&
与条件断点的实用的log
技巧 -
简单获取unix时间戳
在Javascript里,你可以简单的取得unix时间戳
-
怎样`reduce()`数组
使用
reduce()
函数时的一些建议 -
变量声明
理解并应用变量的声明。
-
纯JS监听document是否加载完成
跨浏览器且纯JavaScript检测document是否加载完成。
-
计算数组中的最大值/最小值
对于纯数字数组,使用内置函数Math.max()和Math.min()的方法。
-
了解传值机制
JavaScript理论上说只传递原始类型和对象(或引用)类型的值。在引用类型的情况下引用值本身通过值传递。
-
函数参数内使用解构
你知道在函数参数内也可以使用解构吗?
-
预防unapply攻击
冻结内置对象的原型方法。
-
数组平均值与中值
计算数组的平均值与中位数
-
使用JSON.Stringify
将JSON对象的参数选择性地生成字符串。
-
Javascript高级特性
怎样给一个对象添加私有参数、
getter
或setter
。 -
Javascript多维数组扁平化
将多位数组转化为单一数组的三种不同方法。
-
数组去重
移除包含不同类型数据的数组中重复的元素。
-
扩展插件中观察DOM的变化
当你为存在的网站开发扩展插件时,由于现代的动态Javascript,操作DOM并不是很容易。
-
赋值技巧
赋值是很常见的。有时候打字对于我们这些“懒惰的程序员”来说是很费时间的。所以,我们可以使用一些小把戏来使我们的代码更清楚更简单。
-
实现异步循环
实现异步循环时,你可能会遇到问题。
-
仅用一行生成`[0, 1, ..., N-1]`数列
我们可以创建一个函数,它可以仅用一行代码生成0…(N-1)数列。
-
仅用一行生成`[0, 1, ..., N-1]`数列
我们可以创建一个函数,它可以仅用一行代码生成0…(N-1)数列。
-
Map()的营救;使对象属性有顺序
对象是一个无序的对象集合。这意味着如果你想在对象里保存有序的数据,你需要重新处理它,因为对象里的数据不保证是有序的。
-
避免修改和传递`arguments`给其他方法 — 影响优化
在JavaScript的方法里,
arguments
参数可以让你访问传递给该方法的所有参数。arguments
是一个类数组对象;arguments
可是使用数组标记访问,而且它有length参数,但是它没有filter
、map
和forEach
这样内建到数组内的方法。因此,如下代码是一个非常常见的将arguments
转换为数组的办法 -
将truthy/falsy转换为布尔值
逻辑运算符是JavaScript的核心之一,在这里你将看到一种无论你传什么值都可以总是得到true或false的方法。
-
运用存储加速递归 Speed up recursive functions with memoization
大家对斐波那契(Fibonacci)数列都很熟悉。我们可以再20秒内写出下面这样一个方法,它可以运行,但并不高效。它做了太多重复的运算,我们可以通过存储这些运算结果来使其加速。
-
柯里化(currying)与部分应用(partial application)
柯里化(currying)与部分应用(partial application)是两种将一个函数转换为另一个有着较小普通参数个数的函数的方法。
-
JS中的短路求值
短路求值是说, 只有当第一个运算数的值无法确定逻辑运算的结果时,才对第二个运算数进行求值:当AND(
&&
)的第一个运算数的值为false时,其结果必定为false;当OR(||
)的第一个运算数为true时,最后结果必定为true。 -
过滤并排序字符串列表
你可能有一个很多名字组成的列表,需要过滤掉重复的名字并按字母表将其排序。
-
使用立即执行函数表达式
立即执行函数表达式( IIFE - immediately invoked function expression)是一个立即执行的匿名函数表达式,它在Javascript中有一些很重要的用途。
-
使用 === 而不是 ==
== (或者
!=
) 操作在需要的情况下自动进行了类型转换。===
(或!==
)操作不会执行任何转换。===
在比较值和类型时,可以说比==
更快。 -
转换为数字的更快方法
将字符串转换为数字是极为常见的。最简单和快速的方法是使用
+
(加号) 来实现。 -
清空数组的两种方法
在JavaScript中清空一个数组有很多方法,但这是一个最高效的方法。
-
对数组洗牌
Fisher-Yates Shuffling 算法对数组进行洗牌
-
返回对象,使方法可以链式调用
在面向对象的Javascript中为对象建立一个方法时,返回当前对象可以让你在一条链上调用方法。
-
安全的字符串拼接
假如你需要拼接一些不确定类型的变量为字符串,你需要确保算术运算符在你拼接时不会起作用。使用concat
-
快速(但危险)的取整方法
通常情况下
~~X
比Math.trunc(X)
要快,但同时也会使你的代码做一些讨厌的事情。 -
Node.js - 运行未被引用的模块
在Node里,你可以让你的程序根据其运行自
require('./something.js')
或者node something.js
而做不同的处理。如果你想与你的一个独立的模块进行交互,这是非常有用的。 -
向回调方法传递参数
通常下,你并不能给回调函数传递参数,但是你可以借助Javascript闭包的优势来传递参数给回调函数。
-
更简单的使用indexOf实现contains功能
JavaScript并未提供contains方法。检测子字符串是否存在于字符串或者变量是否存在于数组你可能会这样做。
-
箭头函数
介绍一个ES6的新特性,箭头函数或许一个让你用更少行写更多代码的方便工具。
-
测量javascript代码块性能的小知识
快速的测量javascript的性能,我们可以使用console的方法,例如
console.time(label)
和console.timeEnd(label)
-
ES6中的伪强制参数
在许多编程语言中,方法的参数时默认强制需要的,开发人员需要明确定义一个可选的参数。
-
变量提升
理解变量提升有助于管理函数作用域
-
检查某对象是否有某属性
这是一些检查某对象是否有某属性的方法。
-
模板字符串
ES6中,JS现在有了引号拼接字符串的替代品,模板字符串。
-
将Node List转换为数组(Array)
这是一个快速、安全、可重用的方法将node list转换为DOM元素的数组。
-
使用"use strict" 变得懒惰
JavaScript的严格模式使开发者更容易写出“安全”的代码。
-
可以接受单参数与数组的方法
写一个方法可以接受单个参数也可以接受一个数组,而不是分开写两个方法。这和jQuery的一些方法的工作原理很像(
css
可以修改任何匹配到的选择器). -
undefined与null的区别
理解
undefined
与null
的区别。 -
排列含音节字母的字符串
Javascript有一个原生方法sort可以排列数组。一次简单的
array.sort()
将每一个数组元素视为字符串并按照字母表排列。但是当你试图整理一个非ASCII元素的数组时,你可能会得到一个奇怪的结果。 -
优化嵌套的条件语句
我们怎样来提高和优化javascript里嵌套的
if
语句呢? -
子容器的Key是很重要的
key是必须传递给从数组中动态创建的所有组件的一个值。它是一个唯一且固定的id,用来识别DOM中的每个组件,也可以让我们区别它是否是同一个组件。使用key可以确保子容器是可保存而且不需要重复创建的,还可以防止奇怪的事情发生。
-
AngularJs - $digest vs $apply
JavaScript模块和构建步骤越来越复杂和多样化,但是新框架里的样板是什么样子的呢?
-
向数组中插入元素
向一个数组中插入元素是平时很常见的一件事情。你可以使用push在数组尾部插入元素,可以用unshift在数组头部插入元素,也可以用splice在数组中间插入元素。