前言:
现时咱们对“字符串加数值得什么”大体比较注意,我们都想要学习一些“字符串加数值得什么”的相关内容。那么小编同时在网上搜集了一些对于“字符串加数值得什么””的相关知识,希望看官们能喜欢,看官们快快来学习一下吧!花了很长时间总结的JavaScript运算符,较言之,很全面的,几乎涵盖了JavaScript里所有的运算符,看完这篇文章后,你将会全方面的认识并学习JavaScript运算符,全面的认识它,弥补你对运算符的缺点,加深对运算符的学习应用程度,纯干货,感谢您的阅读。
引言
JavaScript运算符在JavaScript中相当重要,可以说在任何语言中都少不了这些东西,基础而又很常用,熟练地掌握它讲你的开发效率提高,况且在面试的时候,无论是笔试还是答题,这些基础经常会出现在你的眼前,比如或(||)与(&&)非(!)的含义,==和===的区别以及位移操作的相关知识,其实看着简单,实则里面大有含义,好了,话不多说,我们开始吧!
JavaScript运算符
JavaScript中包括很多运算符,其中有:
算术运算符自增与自减关系运算符对象运算符逻辑运算符位运算符其他运算符算术运算符
算术运算符是对数值(文字或变量)的执行算术运算,算术运算符分为两种:一种是运算符,一种是复合赋值运算符。
那么最基本的运算符包含哪些呢?
1、加法运算符(+)加数:
其功能有三:
对数字进行代数求和对字符串进行连接将一个数值转化成字符串(数值+空字符串),代码可读性较差,但相对String(Value)来说,我还是喜欢用这种转化方式
说起JavaScript中将一个值转化为字符串,我们可以有三种方法:
1、value.toString():但是它不能把null和undefined转换为字符串。
2、"" + value:使用加法运算符配合一个空字符串可以把任意值转换为字符串,我觉得这种方法代码的可读性很差,但相对String(value)来,还是有一些人更喜欢用这种转换方式。
3、String(value):这种方法可读性更好,唯一的问题是,这种函数调用可能会迷惑一些人,尤其是那些熟悉Java的程序员,因为String同时也是一个构造函数.要注意的是它作为普通函数和作为构造函数时的表现完全不同。
var n = 5; //定义并初始化任意一个数值console.log(NaN + n); //NaN与任意操作数相加,结果都是NaNconsole.log(Infinity + n); //Infinity与任意操作数相加,结果都是Infinityconsole.log(Infinity + Infinity); //Infinity与Infinity相加,结果是Infinityconsole.log((-Infinity) + (-Infinity)); //负Infinity相加,结果是负Infinityconsole.log((-Infinity) + Infinity); //正负Infinity相加,结果是NaNconsole.log(1 + 1); //如果操作数都是数值,则进行相加运算console.log(1 + "1"); //如果操作数中有一个是字符串,则进行相连运算console.log(3.0 + 4.3 + ""); //先求和,再连接,返回"7.3"console.log(3.0 + "" + 4.3); //先连接,再连接,返回"34.3" //3.0转换为字符串3
在使用加法运算符时,应先检查操作数的数据类型是否符合需要
提示:字符串拼接也分两种方式,字符串+字符串,二者可以直接拼接,字符串+数值,可先将数值转化为字符串然后在拼接。
2、减法运算符(-)减数
其功能也有三:
对操作数进行“取反”操作对数字进行减法操作对字符串转化成数值
var n = 5; //定义并初始化任意一个数值console.log(NaN - n); //NaN与任意操作数相减,结果都是NaNconsole.log(Infinity - n); //Infinity与任意操作数相减,结果都是Infinityconsole.log(Infinity - Infinity); //Infinity与Infinity相减,结果是NaNconsole.log((-Infinity) - (-Infinity)); //负Infinity相减,结果是NaNconsole.log((-Infinity) - Infinity); //正负Infinity相减,结果是-Infinityconsole.log(2 - "1"); //返回1console.log(2 - "a"); //返回NaN取反运算符也叫一元减法运算符console.log(- 5); //返回-5。正常数值取负数console.log(- "5"); //返回-5。先转换字符串数字为数值类型console.log(- "a"); //返回NaN。无法完全匹配运算,返回NaNconsole.log(- Infinity); //返回-Infinityconsole.log(- (- Infinity)); //返回Infinityconsole.log(- NaN); //返回NaN
提示:在减法运算中,如果操作数为字符串,先尝试把它转换为数值,再进行运算。如果有一个操作数不是数字,则返回 NaN。
3、乘法运算符(*)乘数
其功能是对两个运算数进行乘法运算,这个就没有很多的其它运算了,遵从同号得正,异号得负,例如:
var n = 5; //定义并初始化任意一个数值console.log(NaN * n); //NaN与任意操作数相乘,结果都是NaNconsole.log(Infinity * n); //Infinity与任意非零正数相乘,结果都是Infinityconsole.log(Infinity * (- n)); //Infinity与任意非零负数相乘,结果是-Infinityconsole.log(Infinity * 0); //Infinity与0相乘,结果是NaNconsole.log(Infinity * Infinity); //Infinity与Infinity相乘,结果是Infinity
4、除法运算符(/)除数。
其功能是对两个运算数进行除法运算,遵从同号得正,异号得负,例如:
var n = 5; //定义并初始化任意一个数值console.log(NaN / n); //如果一个操作数是NaN,结果都是NaNconsole.log(Infinity / n); //Infinity被任意数字除,结果是Infinity或-Infinity//符号由第二个操作数的符号决定console.log(Infinity / Infinity); //返回NaNconsole.log(n / 0); //0除一个非无穷大的数字,结果是Infinity或-Infinity,符号由第二个操作数的符号决定console.log(n / -0); //返回-Infinity,解释同上
5、系数运算符(%)返回除法的余数。
其功能是返回两个除数的余数,例如:
var n = 5; //定义并初始化任意一个数值console.log(Infinity % n); //返回NaNconsole.log(Infinity % Infinity); //返回NaNconsole.log(n % Infinity); //返回5console.log(0 % n); //返回0console.log(0 % Infinity); //返回0console.log(n % 0); //返回NaNconsole.log(Infinity % 0); //返回NaN自增与自减
功能相反:
++:对唯一的运算数进行递增操作(每次加1)
--:对唯一的运算数进行递减操作(每次减1)
规则相同:
运算数必须是一个变量、数组的一个元素或者对象的属性,如果运算数是非数值的则运算符会将它转化成数值。
符号位置决定运算结果:
运算数之前,先进行递增或递减操作,在进行求值。
运算数之后,先进行求值,在进行递增或递减操作。
例如:
//前置递增var age = 29;++age;console.log(age); //30//等同于var age = 29;age = age + 1;console.log(age); //30//前置递减和这个类似var age = 29;--age;console.log(age); //28//执行前置递减和递增操作时,变量的值都是在语句被求值以前改变的var age = 29;var anotherAge = --age + 2;console.log(age); //28console.log(anotherAge); 30//由于前置递减和递增操作与执行语句的优先级相等,因此整个语句会从左至右被求值var num1 = 2;var num2 = 20;var num3 = --num1 + num2;var num4 = num1 + num2;console.log(num3); //21console.log(num4); //21//zhou:通俗地说,前置就是先对自己加或减,把自己搞好了再去做其他的//----------------------------------------------------------------------------------------------------//后置递增和递减与前置递增和递减有一个非常重要的区别,即递增和递减操作是在包含它们的语句被求值之后才执行的//这个区别在某些情况下不是什么问题,例如:var age = 29;age++;console.log(age); //30//把递增操作符放在变量后面并不会改变语句的结果,因为递增是这条语句的唯一操作。//但是,当语句中还包含其他操作时,上述区别就会非常明显了,例如:var num1 = 2;var num2 = 20;var num3 = num1-- + num2;var num4 = num1 + num2;console.log(num3); //22console.log(num1); //1console.log(num4); //21//zhou:通俗地说,后置就是先去做其他的,等其他的搞好了,再对自己加或减var num1 = 2;var num2 = 20;var num3 = num1++ + num2;var num4 = num1 + num2;console.log(num3); //22console.log(num1); //3console.log(num4); //23
本篇文章呢,就先讲算术运算符和自增与自减,下一篇文章我们再来说关系运算符和对象运算符。
标签: #字符串加数值得什么