大家知道,==是JavaScript中比较复杂的一个运算符。它的运算规则奇怪,容易让人犯错,从而成为JavaScript中“最糟糕的特性”之一。在仔细阅读了ECMAScript规范的基础上,我画了一张图,我想通过它你会彻底地搞清楚关于==的一切。同时,我也试图通过此文向大家证明==并不是那么糟糕的东西,它很容易掌握,甚至看起来很合理。
==
JavaScript中的递增和递减运算符都是一元操作符,言外之意就是只能操作一个值的操作符。递增和递减操作符直接借鉴自C语言,各有两种版本:前置型(递增++i,递减--i)和后置型(递增i++,递减i--)。在JavaScript中,递增(递减)的前置和后置运算符对于初学者都非常容易混淆。我就属于这一类型,这次下定决心把这两者的使用和不同之处了解清楚。如果你和我一样,不仿一起来了解一二。
++i
--i
i++
i--
在《变量值的数据类型》一文中,了解到了JavaScript的变量主要有基本类型(undefined、null、boolean、number和string, ES6中还新增了Symbol)和引用类型(对象、数组、函数)。但在JavaScript中用户定义的类型(object)并没有类的声明,因此继承关系只能通过构造函数和原型链接来检查。而在这篇文章中,主要整理了在JavaScript中如何检测一个变量的类型。
undefined
null
boolean
number
string
Symbol
object
在《JavaScript变量:变量声明》一文中了解了,在JavaScript中可以通过关键词var、let和const来声明一个变量。并且提到过,使用let和const声明的变量不存在变量提升;而使用var声明的变量存在变量提升。那么什么是变量提升,这篇文章主要来介绍的就是这方面的知识。
var
let
const
JavaScript的每个变量都会有有一个变量值,变量值都有对应的数据类型。在JavaScript中变量有两种不同的数据类型:基本类型和引用类型。在不同的地方对这两种数据类型的称呼也略有不同。比如,基本类型又称之为原始类型(拥有方法的类型或者可变类型),引用类型又称之为对象类型(不能拥有方法的类型或者不可变类型)。不管怎么称呼,都是依据数据类型的特点来命名的。
这篇文章主要介绍了在JavaScript中通过push()、concat()和reduce()等方法的组合,实现数组合并的功能。并且在此基础上结合《JavaScript学习笔记:数组去重》一文介绍的方法,还可以轻松的实现合并后的数组,把重复的数组项删除。
push()
concat()
reduce()
昨天做一个页面有一个需求,需要把服务器取过来的数字(也有可能是数字字符串),将小数点前的数字每隔三位添加一个逗号(前面数是一个四位数的值)。比如取到的值是123456,要将其转换成123,456。搜索了一下,这叫数字分位符号。
123456
123,456
变量的命名相对而言没有太多的技术含量,今天整理有关于变量命名相关的原则,主要是想告诉大家,虽然命名没有技术含量,但对于个人编码,或者说一个团队的再次开发及阅读是相当有用的。良好的书写规范可以让你的JavaScript代码更上一个台阶,也更有利于团队的再次开发和阅读代码。
这里所说的重复字符串是指对所给的字符串根据第一个数字参数重复次数。简单点说,就是创建一个repeat()函数,并且给这个函数传递两个参数,第一个参数是一个字符串str,而第二个参数是一个数字num。执行函数repeat(str, num)之后,字符串str就会重复,而且重复的次数由num来确定。
repeat()
str
num
repeat(str, num)
字尾确认指的是对所给的字符串(第一个参数)确认是否是以第二个参数结尾,如果是则返回true,否则返回false。也就是说,今天要做的任务是创建一个end()函数,并且给这个函数传入两个参数str和target。如果target和str末尾相同,则返回true,反之则返回false。
true
false
end()
target