重零开始学前端-基础(2) 运算符和数据转换
在上篇文章,我简单介绍了js中的数据类型,现在主要介绍js中的运算符合数据转换。运算符就是通过+、-、*、/等方式来对数据变量进行更改或重新赋值的一个过程,在此期间代码结构非常简单,但是因为组合的方式比较多,有些时候也不好理解,所以我会配置大量的中文讲解,言语会比较拖拉,但是觉得简单易懂。
在js中运算符通常有三种使用方式:
1.+、-、*、/、%(取余)
2.+=、-=、*=、/=、%=
3.++、--
那么对应着,在运算的过程中不可避免会对原有的数据结构进行更改,那么这种方式成为数据类型转换。
同样数据类型一般有三种转换方式:
1.隐式转换:计算机自己本身运算,造成数据的更改称为隐式转换。
2.显式转换:通过特定的方法对原有数据结构更改,如parseFloat或.toString()成为显示转换(也可以理解为看得见摸得着)
3.强制转换:通过特定的数据类型结构对某一个变量进行类型方式转换,称之为强制转换。(不成功,就成仁)
上面的定义我们先放在那里,先看一个比较简单的代码
var a = "你好"; var b = "张三"; var c = "5"; var d = "4"; 1. a+b // 你好张三 2. a+c // 你好5 3. a-b // NaN 4. a-c // NaN 5. c-d // 1
好啦,是不是神神奇的结果,我们一点点来进行解读。
首先第一个开始:string字符串类型由一个最强大的特性,即无论与任何数据结构进行相加,最终得到的结果一定是字符串,如果我们队 "11"+1 那么最终的结果是将 字符串的数据11和数字1进行拼接,最终得到 "11"+1 = "111"
string字符串在本身是一个数字结构的情况下,允许进行除加法外的任何算法,如减、乘、除、余等 并最终返回一个数字
如: "22"/2 = 11 、 "33.2"*2 = 66.4
当然也会有些奇葩的操作 如:"你好"/2 = NaN 在这里 因为字符串本身不是纯数字组成的 所以没有办法进行合理的计算,最终运算失败,但是有些时候为了后续程序的运行和逻辑,我们不想让程序报错,否则无法执行,这样浏览器提供了一个全新的数据类型表达方式 NaN ,正常的名称为 not a number, 即不是一个数字。