博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2020-07-22---js运算符
阅读量:3961 次
发布时间:2019-05-24

本文共 2835 字,大约阅读时间需要 9 分钟。

  1. undefined == null,结果是true;
    == 判断左右两边的值是否相等,undefined和null都表示没有值,所以是相等的。
  2. parseInt,parseFloat,Number的区别:
    三者都是强制转换为数字的函数,但是在具体的某些场景下有区别。如果转的是布尔值、undefined、null以及纯整数的字符串,它们是相同的;如果转的带小数点的纯数字的字符串,parseInt的结果只有整数,parseFloat和Number是小数;如果转的前面数字,后面有其它字符,parseInt,parseFloat会转为数字,Number为NaN。
var a;			a = parseInt("2.33a");			document.write(a);//输出2			b = parseFloat('2.33a');			document.write(b);//输出2.33			c = Number("2.33a");			document.write(c);//输出NaN

运算符

  1. 算术运算符 +、 - 、* 、/ 、%(取余符号)
  2. 关系运算符 >、 <、 >= 、<=、 == 、 !=、=== 、!==
  3. 逻辑运算符 && 、|| 、!
  4. 一元运算符 ++、–
  5. 赋值运算符
    (1)基本赋值运算符 =
    (2)复合赋值运算符 += 、-=

表达式:任何数据和运算符组成的式子叫做表达式。例如100、15-8*9等都是表达式。

(1)表达式的值
(2)表达式的功能

算数运算符

将不同数据类型进行算数运算。

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

  1. 其中有一个操作数必须是字符串,运算符必须是+号,这样在进行算数运算的时候别的数据类型会转成字符串,进行字符串拼接。
document.write("hello"+"world");//输出helloworld			document.write("hello"+100);//输出hello100			document.write("hello"+true);//输出hellotrue			document.write("hello"+NaN);//输出helloNaN			document.write("hello"+undefined);//输出helloundefined			document.write("hello"+null);//输出hellonull
  1. 任何数据和字符串做加法以外的操作,那么字符串要先转成数字再去进行运算。
    (1)如果字符串是纯数字字符组成的字符串,则转成相应的数字。
    (2)如果字符串中含有除数字以外的别的字符,则转成NaN。
alert(100-"20");//输出80			alert(100-"20a");//输出NaN			alert("hello"-"hellm");//输出NaN			alert(undefined-"n");//输出NaN
  1. 除字符串以外的数据,在进行算数运算的时候,先转成数字,再进行运算。
    【注】NaN除了和字符串做加法的时候是字符串拼接,其余任何只要含有NaN的运算的结果都是NaN。
alert(100 + true);//输出101  true转成数字为1			alert(100 + false);//输出100  false转成数字为0			alert(100 + undefined);//输出NaN undefined转成数字为NaN			alert(100 + NaN);//输出NaN			alert(100 + null);//输出100 null转成数字为0
  1. 计算机是不会进行小数运算的,计算机在计算小数的时候天生有bug,计算出来有误差。
alert(0.8-0.1);//输出0.7000000000000001
  1. 在js中除数可以为0。
alert(1/0);//输出infinity  无穷大			alert(-1/0);//输出-infinity  无穷小			alert("hello"+Infinity);//输出helloinfinity   做字符串拼接			alert(1+Infinity);//输出infinity infinity本身是数字,和1相加还是infinity无穷大

赋值运算符

(1)基本赋值运算符 =

功能:将等号右边额值赋给等号左边的变量

var a = 10 +30;			alert(a);//输出40			a = a + 10;			alert(a);//输出50

(2)复合赋值运算符 += 、-=、……

var a = 10;			a = a+10			a += 10;//这个写法是上一行代码的简写  a += 10 就相当于 a = a+10			alert(a);//输出30

一元运算符

  1. 加加 ++
    功能:对原有的变量进行加 1 操作。
    (1)a++
    值:加加后置,先取a的值作为表达式a++的值,然后再对a进行加1操作。
    功能:对原有的变量进行加 1 操作。
var a = 5;			alert(a++);//输出5   输出的是表达式a++的值			alert(a);//输出6

(2)++a

值:加加前置,先对a进行加1操作,然后再取a的值作为++a的值。
功能:对原有的变量进行加 1 操作。

var a = 5;			alert(++a);//输出6  输出的是表达式++a的值			alert(a);//输出6

例子

var a = 10;			alert(a++ + ++a + a + ++a + a++ + a);//输出74

分析:

首先a的值是10,
第一个a++,加加后置,此时表达式a++的值是10,此时a的值是11。
第二个++a,此时a的值是11,加加前置,所以此时表达式++a的值是12,此时a的值是12。
第三个a,此时a的值是12。
第四个++a,此时a的值是12,加加前置,所以此时表达式++a的值是13,此时a的值是13。
第五个a++,此时a的值是13,加加后置,所以此时表达式a++的值是13,此时a的值是14。
第六个a,此时a的值是14。
所以相当于 10 + 12 + 12 + 13 + 13 + 14 = 74

  1. 减减 - -
    功能:对原有的变量进行减 1 操作。
    (1)a- -
    值:减减后置,先取a的值作为表达式a- -的值,然后再对a进行减1操作。
    功能:对原有的变量进行减 1 操作。
    (2) - - a
    值:减减前置,先对a进行减1操作,然后再取a的值作为表达式 - - a的值。
    功能:对原有的变量进行减 1 操作。

例子

var a = 10;			alert(a-- + --a + a + --a + a-- + a);//输出46

转载地址:http://uvqzi.baihongyu.com/

你可能感兴趣的文章
Hibernate中Criteria的完整用法
查看>>
sql jsp
查看>>
spring beans beanfactory applicationcontext
查看>>
使用ORM工具进行数据访问
查看>>
使用ORM工具进行数据访问
查看>>
编译与部署Eclipse+Tomcat+MySQL+Liferay4.1.2
查看>>
POJ3728,The merchant(倍增LCA+分治)
查看>>
2019 ICPC Malaysia National,E. Optimal Slots(01背包变形)
查看>>
洛谷P1638 逛画展(双向队列)
查看>>
POJ2892,Tunnel Warfare(线段树维护连续区间)
查看>>
POJ3468,A Simple Problem with Integers(线段树-区间查询-区间更新)
查看>>
杭电ACM——6463(思维)
查看>>
杭电ACM——1061,Rightmost Digit(思维)
查看>>
杭电ACM——1087,Super Jumping! Jumping! Jumping!(DP)
查看>>
杭电ACM——fatmouse's speed(DP)
查看>>
杭电ACM——毛毛虫(DP)
查看>>
杭电ACM——humble numbers(DP)
查看>>
杭电ACM——6467,简单数学题(思维)
查看>>
杭电ACM——天上掉馅饼(DP)
查看>>
杭电ACM——1086,You can Solve a Geometry Problem too(思维)
查看>>