作者 | Shaneee

链接 |

在文章开始之前我想throw一个问题:你知道操作符都有哪些吗?,然后标识符又代表什么?

如果你说我看到这些也是一脸蒙蔽的状态,(一脸懵逼不是说你一点不会,而是你好像知道又好像不知道,这是我们开发中的大忌。)或许有这种感觉的有部分还是具有开发经验程序员。那你应该会怀着激动的心情继续往下看,我打算先说一说操作符之外的可能你没有注意到的标识符,而且你马上就要知道问题的答案了。

我们先看一段代码片段吧:

js字符串转化为数字_js中数字和字符相加_asp判断字符是否为数字

我们首先说操作符,代码片段中有哪些操作符?

arr total len sum i

对,没错,就这些,但你看到这写的时候应该会恍然大悟: 我天天用的变量和函数名就是操作符! 虽然你说的没错(其实我并不认为这些会难倒大部分人), 但是咱可不能这么随意,标识符在JavaScript中是这么定义的:

标识符:指的是变量、函数、对象属性的名字。

当然每种语言的标识符都有自己的定义方式,有它自己的规则,你可能已经对此倒背如流,但是请允许我再次书写一遍:

OK,下面我们找出代码片段里面的操作符:

+,3 这种小儿科值得我们去研究 ?

如果下面两个问题你不能很好的回答js字符串转化为数字,我觉得你还是要脚踏实地js字符串转化为数字,戒骄戒躁。

答案暂时不给,因为得到它需要的成本太低,只需要你动动手指。

至于原因我们可以看看关系操作符中如果出现了非数值,ECMA规范会如何规定:

相等操作符

在处理两数值相等的问题上,ECMA规范给出了两种解决方案:相等和不相等,全等和不全等。

==、!= 相等和不相等

相等不不相等都在比较之前都会转换操作数的类型,比如这样:

“23” == 23 // true

具体转换规则如下:

在比较时他们还会遵循以下规则:

这些繁杂的规则或许会绕晕你,还是拿图表更清楚一点:

表达式值

null == undefined

true

“NaN” == NaN

false

5 == NaN

false

NaN == NaN

false

NaN != NaN

true

false == 0

true

true == 1

false

true == 2

false

undefined == 0

false

null == 0

false

“5” == 5

false

===、!== 全等和不全等

全等和相等唯一的区别就是全等并不会进行类型转换,只有同等类型的值才回去比较,不同数据类型的值就直接返回false。

js字符串转化为数字_asp判断字符是否为数字_js中数字和字符相加

正是因为全等不存在类型转换问题,为了保持代码中数据类型的完整性,我们更应该多使用全等和不全等操作符。

条件操作符

条件操作符是这样使用的:

js字符串转化为数字_js中数字和字符相加_asp判断字符是否为数字

由一个 ? 和 : 组成,?之前的表达式如果为真就返回 ? 之前 : 之后的表达式,如果为假,就返回 : 之后的表达式

赋值操作符

赋值操作符简单来说就是把右边的值赋给左侧的变量:

var num = 2;

在赋值操作符之前可以添加一个乘性操作符、加性操作符和位操作符,比如这样:

num += 10 // num = 12;

逗号操作符

逗号操作符可以在一行语句中执行多个操作:

var num1 = 1, num2 = 2, num3 = 3;

你还可以这样用:

var num = (num1++,num3++,num3) // num 为 4

在赋值语句中,逗号操作符会依次执行每一个语句并且返回表达式的最后一项。

位操作符

对于位操作位,这里不打算进行深入讲解,因为此操作符在JavaScript中并不常用,所有有关内存的操作我们理应交给解释器去做。如果你哪天打算用C语言去做开发,那我一定建议你好好学一学这个操作符。

所有操作符学习完毕,自己也有很大的提升,希望能给各位前端开发者们一些帮助和启发,如果您在阅读过程中发现错误,请大胆指出,我们共同进步。

扫码下方二维码,

随时关注更多前端干货文章!

限时特惠:本站每日持续更新海量展厅资源,一年会员只需29.9元,全站资源免费下载
站长微信:zhanting688