JS学习—运算符(算数运算符、关系运算符、逻辑运算符、一元运算符、赋值运算符)

tech2025-12-30  3

一、算数运算符 + - * / %(取余符号)

计算机进行自动数据类型转换:不同数据类型之间没有办法进行运算,将数据转成同一数据类型,再进行计算。

其中一个操作数是字符串,运算符是+号,别的数据类型转换成字符串,两个字符串会拼接起来。 alert('hello' + 100);//hello100 alert('hello' + true);//hellotrue alert('hello' + NaN);//helloNaN alert('hello' + undefined);//helloundefined alert('hello' + 'de');//hellode 任何数据和字符串做+以外的操作,那么字符串要先转成数字再去进行运算。(100 - "20"结果为80)

如果字符串是一个纯数字字符组成的字符串,转成对应的数字;

如果字符串中含有除数字外的字符,转成NaN, NaN和任何数据运算都是NaN ;

alert(100 - '20');//相当于100-20 结果为80 alert(100 -"20a");//'20a'转换成数字为NaN,所以结果为NaN 除字符串以外的数据,进行算术运算的时候,先转成数字,再进行运算 alert(10 + true);//true=>1 alert(10 +false); //false=>0 alert(100 - NaN); //结果NaN alert(100 -undefined);//结果NaN alert(100 -null); //结果100 null=>0

注意:

<1>计算机不会进行小数运算 <2>在js中除数能为0

alert(0.8-0.1) alert(10 / 0);//Infinity alert(-10 / 0);//-Infinity Infinity是一个数字,可以跟数字运算 ,结果总是无穷大。

二、 关系运算符 < > <= >= == != === !==

判断的结果绝对是布尔值不同数据类型在进行比较的时候所遵循的规律: (1) 两个操作数都是数值,则数值进行比较。 (2)两个操作符都是字符串,则比较两个字 符串对应的字符编码值。ASCII码表是电脑内部每一个字符对应编码得一张表。 ①如果是两个单个字符进行比较,直接进行比较ASCII码值。 ②逐位进行比较,直到比较出大小 得到结果。 “abcd” < “ad” : a相同 , b为98, d为100, 所以结果为true. (3)两个操作数有一个是数值,则将另一个转化为数值,再进行数值比较。 1 == true //true转成数字是1,false转成数字是0,比较结果是true 10 == "10" //结果是true

(4)NaN, ==返回false,!=返回true,且NaN与自身不等。

alert(10 == "10a" );//false alert(10 != "10a");//true alert("10a" == NaN);//false

=== 恒等 必须数字和数据类型都相同,才返回true

注意:Number(null)是0;Number(undefined)是NaN; 但是null == undefined是true.

三、 逻辑运算符 && || !

与运算:

&& (表达式1 && 表达式2 ) 只有当两个表达式都为true时,整个表达式才为真。 注意短路操作:只要左边一个为假,整个表达式就为假,不会再运行右边的代码。比如 10<5 && alert(num); 不会报未声明变量num的错误,因为右边不执行。

或运算:

|| (表达式1 || 表达式2) 只有当两个表达式都为false时,整个表达式为假。 (同样表达式1为真的话就会不在运行表达式二,直接得出整个表达式为true)

非运算:

!表达式 将表达式的数据类型转换为布尔值(非0即真,非空即真),然后再取反。

四、一元运算符 ++ - -

a++:

对原来变量进行加1操作 ,先取a得值作为a++表达式得值 ,再对a加一

++a:

对原来变量进行加1操作,先对a加一,再将a的值作为++a的表达式。

var a = 5; alert(a++);//5 alert(++a);//7 上一语句先将a的值作为a++的值输出,再对a加一变成6,此句将a加一变成7,再讲a得值7作为++a的值输出。 a- - 、 - -a

对原来变量进行减1操作

五、 赋值运算符 基本 = 复合+= -= *

“=” 将等号右边的值赋值给等号左边的变量: var num = 10 + 20; alert(num); //结果是30 “+=” : num = num + 9 => num += 9
最新回复(0)