JavaScript算数运算符和一元运算符
算数运算符
- 加法运算符(Addition): x + y
- 减法运算符(Subtraction): x - y
- 乘法运算符(Multiplication): x * y
- 除法运算符(Division): x / y
- 余数运算符(Remainder): x % y
- 自增运算符(Increment): ++x 或者 x++
- 自减运算符(Decrement): --x 或者 x--
- 数值运算符(Convert to number): +x
- 负数值运算符(Negate): -x
运算符又叫做操作符
通过运算符可以对一个或是多个值进行运算,并获取运算结果。
例如:如typeof就是一个运算符,可以获得数据的类型,运算符都是会返回结果的。
typeof会将值的类型以字符串的形式返回。
算术运算符:
注意:1、对非Number类型的值进行运算的时候,会先把其转换成Nunber类型的值。然后再运算.(除了字符串的加法其余都适用);2、任何数和NAN做运算时,转换的值都是NAN
一、+(加号)
可以对两个值进行加法运算,并将结果返回(在这里输出的结果就是123+1=124)
运算符不会对原变量产生影响,除非原变量赋值
两个数字类型相加,直接相加即可,得到的数据类型还是数值型
布尔值与数字相加,先将true转换成1,false转换成0,在进行算术运算。
注意:对非Number类型的值进行运算的时候,会先把其转换成Nunber类型的值。然后再运算.
任何数和NAN做运算时,转换的值都是NAN
与null类型值相加,null转换为0。
如果对两个字符串进行加法操作,就会进行拼串操作,两个字符串拼成一个字符串。
双引号必须在同一行。
字符串需要换行。可以使用多个字符串换行后使用加号拼在一起。
任何值个字符串做加法运算都会将其转化成字符串,然后再进行字符串拼串。
我们可以利用这一特点
由上可知,任何值个字符串做加法运算都会将其转化成字符串,然后再进行字符串拼串。
我们可以利用这一特点,来将任意类型数据转换成字符串类型数据。
方法:只需要给需要转换的值加上一个空的字符串(" ")即可。
这是一种隐式转换类型,由浏览器自动完成,实际上也是也是调用String()函数。
要注意运算的顺序,运算是按照从左向右从上到下的顺序进行运算的
实例:
二、-(减号)
减号可以对两个值进行减法运算,并返回值。
除了加法中与字符串相加的情况,其余的运算都把数据类型转换成Number进行运算。
三、*(乘法)
乘法对两个值进行乘法运算,并返回值。
对非Number类型的值进行运算的时候,会先把其转换成Nunber类型的值
任何值有关NaN的运算返回的都是NaN。
四、/(除法)
对数据实现除法运算,并返回值。
对非Number类型的值进行运算的时候,会先把其转换成Nunber类型的值
任何值有关NaN的运算返回的都是NaN。
五、%(取模运算,取余数)
例如 a=9 % 3,表示9模以3返回其余数。
适用场合:1、判断数字的奇偶性(数值%2为1则是奇数,为0则是偶数);
2、获取数字的后几位(如1045想取其最后一位,就可以1045模10,输出数值5)。
六、总结:
1、任何值在做 -(减法)、*(乘法)、/(除法)运算的时候都会变成Number类型的值。
应用:我们可以利用这一特点做隐式类型转换,将数据类型转换为Number
减法[ - 0];乘法 [ *1 ];除法 [ / 1]。
2、任何值个字符串做加法运算都会将其转化成字符串,然后再进行字符串拼串。
应用:来将任意类型数据转换成字符串类型数据,做隐式类型转换。
具体例子回顾上文加法运算~
一元运算符
一元运算符只需要一个操作数。(例如,typeof(a)只需要一个操作数)
有两个一元运算符:1、正号+;2、负号 -;
一、正号(+)
Number类型:正号不会对数值产生影响
对于任意非Number类型的值,会先转换成Number类型的值,然后再进行运算。
二、负号(-)
Number类型:负号可以对符号进行取反
对于非Number类型的值,会先转换成Number类型的值,然后再进行运算,变号正值变为负值,负变正。
三、总结
应用:对于任意非Number类型的值,会先转换成Number类型的值,然后再进行运算。(使用起来更加简便)
方法:可以对其他类型的值使用正号+,将其转化成Number类型的值。原理和使用Number( )函数一样。隐式转换
例子:数字与字符串相加本应该返回的是字符串类型的值(125),但是在String值2前面加了一个正号+,就按照Number类型的值做处理,输出值(8)。
注意:两个相邻的+之间必须要有空格分开,否则为错。
最新文章
- position导致Safari工具栏不自动隐藏
- apache-tomcat-5.5.35.搭建实战
- C# RichTextBox 滚动条 滚动到最后一行
- Ruby on Rail学习笔记
- 第一个App“今日材料报价”上架,记录一下【原】
- UISearchController的使用。(iOS8+)
- 在Ubuntu上安装使用Systemtap
- C++线性序列容器<;vector>;简单总结
- Jmeter接口测试-badboy录制脚本(二)
- UVA - 12130 Summits
- centos 用户管理
- JQ万能轮播图
- vue实现标签云效果
- 创建 Machine - 每天5分钟玩转 Docker 容器技术(46)
- PHP程序运行性能分析
- android笔试题二
- protobuf使用简介
- flirtlib 测试过程
- Swift 学习- 08 -- 闭包
- python小知识-属性查询优先级(如果有同名类属性、数据描述符、实例属性存在的话,实例>;类>;数据描述符)
热门文章
- delphi xe2 64位嵌入汇编问题 https://bbs.csdn.net/topics/390333981
- 《Using Databases with Python》Week3 Data Models and Relational SQL 课堂笔记
- 2 日志系统:一条sql更新语句是如何执行的?
- Excel区域复制粘贴
- jenkins自动化测试Email Extension邮件模板 及可用参数TEST_COUNTS ,FAILED_TESTS详细说明
- unsigned char bcd串乱码问题解决
- [转帖]IIS7.5应用程序池集成模式和经典模式的区别介绍
- [19/09/16-星期一] Python的运算符和条件判断语句
- 【监控实践】【4.2】perfmon监控性能计数器(基于typeperf命令)
- Phone List POJ-3630 字典树 or 暴力