详解JavaScript的表明式与运算符,轻易学习JavaSc

作者: 关于计算机  发布:2019-09-03

       JavaScript脚本语言描述了一组用于操作数据值的运算符,蕴含一元运算符,布尔运算符,算术运算符,关系运算符,莫斯利安运算符,位运算符和赋值运算符。
       表明式是JavaScript语言的四个“短语”,包蕴变量名(或字面量)和平运动算符。最简易的说明式时字面量或变量名。当然也许有联合简单的阐明式来创设复杂的表明式。
一、一元运算符
(1)递增++和递减--

轻易学习JavaScript六:JavaScript的表明式与运算符

JavaScript脚本语言描述了一组用于操作数据值的运算符,包含一元运算符,布尔运算符,算术运算符,关系运

算符,安慕希运算符,位运算符和赋值运算符。

表达式是JavaScript语言的一个“短语”,包蕴变量名(或字面量)和平运动算符。最轻巧易行的表明式时字面量或变量名。当

然也会有统一简单的表明式来制造复杂的表明式。

逐个元运算符

(1)递增++和递减--

 

    var box1=100;
    ++box1;//相当于box=box+1
    document.write("box1="+box1+"
");//输出box1=101
    var box2=100;
    --box2;//相当于box=box2-1
    document.write("box2="+box2);//输出box2=99

 

放到和前置的分别

 

    var box=100;
    var age=++box;//box先累加1为101,再赋值给age为101
    var height=box++;//box先赋值给height为101,box再累加为102
    document.write("age="+age+"
");//输出age=101
    document.write("height="+height+"
");//输出height=101
    document.write("box="+box);//输出box=102,原因是box经过了两次累加,所以是102

 

在未曾赋值操作,前置和前置是同一的。但在赋值操作时,固然递增或递减运算符前置,那么后置的演算符会先

丰硕或累减再赋值,如若是前置运算符则先赋值再加上或累减。

(2)加和减运算符

用以取正或取负运算,也可能有把数字字符串转变为数值方式的成效。

 

    var box = "20";
    document.write(typeof box+"
"); //输出string
    var age=-box;
    document.write(age+"
");//输出-20
    document.write(typeof age); //输出number  

 

二算术运算符

JavaScript语言中规定了七种算术运算符,即+,-,*,/和%(取余)。假诺在算术运算符的值不是数值,那么它会

先选用Number()转型函数将其改造为数值(隐式调换)。

 

    var box=100+"100";
    document.write("box="+box+"
");//输出100100
    document.write(typeof box);//输出string

 

这是干吗吗?JavaScript语言中的做算术运算时,只要在这之中叁个是字符串,那么结果就能够转换为字符串。卓绝

于字符串连接符,无法再算作是加法算术运算符。

 

    var box="100"-10;
    document.write("box="+box+"
");//输出90
    var age=5/4; 
    document.write("age="+age+"
");//输出1.25
    var height=("你的年龄是:"+(10+10));//括号强制优先级
    document.write(height);//输出你的年龄是:20

 

取余

 

    var box=10%3; 
    document.write("box="+box);//输出1

 

三涉嫌运算符

用来开展相比较的运算符称作为关乎运算符:<(小于),>(大于),<=(小于等于),>=(大于等于),==(相对),!=(不

等),===(恒等或全等),!==(不全等或不恒等)。关系运算符大非常多重临的是一个布尔值。

和任何运算符一样,当提到运算符操作非数值时要依据以下法规:

1多个操作符都是数值,则数值相比

2七个操作数都是字符串,则相比非常多个字符串对应的字符编码值

3多个操作数有一个是数值,则将另三个退换为数值,在进展数值相比

4四个操作数有一个是目的,则先调用value()方法或toString()方法,再用结果相比。

 

    var box1=3>2;
    document.write(box1+"
");//输出true
    var box2="3">22;
    document.write(box2+"
");//输出false
    var box3="3">"22";
    document.write(box3+"
");//输出true
    var box4="a">"B";//a为97,B为66
    document.write(box4+"
");//输出true
    var box5= "Blue"<"alpha";//Blue的第一个字母是B,alpha的第一个字母是a,a为97,B为66
    document.write(box5) //输出true

 

在分外和见仁见智的可比上,假使操作数是非数值,则依照以下法则:

1一个操作数是布尔值,则比较前面将其退换为数值,false转成0,true转成1。

2多少个操作数是字符串,则比较前边将其转成为数值再比较。

3一个操作数是指标,则先调用value()方法或toString()方法再比较。

4无需别的转变的图景下,null和undefined是相等的

5一个操作数是NaN,则==再次回到false,!=重临true,并且NaN和自身不等

6三个操作数都以指标,则相比较它们是还是不是是同多个指标,尽管都指向同多个指标,则赶回true,不然重临false

7在全等和全不等的决断上,比方值和系列都十一分,才回来true,不然重回fasle。

 

    var box1='2'==2;
    document.write(box1+"
");//输出true,比较的只是数值
    var box2={}=={};
    document.write(box2+"
");//输出false,因为比较的是它们的地址,每个新创建对象的引用地址都不同。
    var box3=null==undefined;
    document.write(box3+"
");//输出true,因为均为空数值
    var box4='2'===2;
    document.write(box4+"
");//输出false,两个操作数的数据类型不相等
    var box5=null===undefined;
    document.write(box5);//输出false,两个操作数的数据类型不相等

 

四逻辑运算符

JavaScript语言中的逻辑运算符平常意义于布尔值的操作,一般和关系运算符合营使用,有三个逻辑运算符:&&

(逻辑与),||(逻辑或)和!(逻辑非)。

(2)&&表示两边都不能够不是true,才回到true。

要是两侧的操作数有一个操作数不是布尔值的处境下,与运算就不自然重回布尔值,此时依据下边包车型地铁条条框框:

1先是个操作数是指标,则赶回第3个操作数

2次之操作数是目的,则第贰个操作数重回true,才回到第3个操作数,不然再次来到false

3二个操作数是null,则赶回null

4二个操作数是undefined,则再次回到undefined

5只要贰个运算数是目的,另多个是 Boolean 值,重返该对象

逻辑与运算符属于短路操作,假如有第二个操作数重临的是false,第贰个不管是true依然false都回到false。

 

    var box1={}&&(5>4);
    document.write(box1+"
");//输出true
    var box2=(5>4)&&{};
    document.write(box2+"
");//输出[object Object]
    var box3=(3>4)&&{};
    document.write(box3);//输出false

 

(2)||代表两侧有一个是true,就重返true。

只要两侧的操作数有一个操作数不是布尔值的情况下,与运算就不必然再次来到布尔值,此时听从上面包车型地铁平整:

1首先个操作数是目标,则赶回第一无不操作数

2首先个操作数的求值结果为fasle,则赶回第一个操作数

3八个操作数都以指标,则赶回第一个操作数

4多个操作数都以null,则赶回null

5多个操作数都以undefined,则再次回到undefined

6三个操作数都以NaN,则赶回NaN

逻辑或运算符也属于短路操作,假使有第二个操作数重临的是true,首个不管是true照旧false都回来true。

 

    var box1={}||(5>4);
    document.write(box1+"
");//输出[object Object]
    var box2=(5>4)||{};
    document.write(box2+"
");//输出true
    var box3=(3>4)||{};
    document.write(box3);//输出[object Object]

 

(3)!逻辑非运算符能够效能与别的值,无论那几个值是哪些数据类型,那些运算符都会回来叁个布尔值,它的流程

是:先将这几个值调换到布尔值,然后取反,准绳如下:

1操作数是贰个目标,再次回到false

2操作数是叁个空字符串,再次回到true

3操作数是三个非空字符串,重回false

4操作数是数值0,再次回到true

5操作数是私下非0数值,再次来到false

6操作数是null,再次回到true

7操作数是NaN,重临true

8操作数是undefined,再次来到true

 

    var box=!{};
    document.write(box);//输出false

 

伍个人运算符

JavaScript语言中回顾了三种位运算符:~(位非),&(位与),|(位或),^(位异或),<<(左移),>>(有符右移号),

>>>(无符号右移)

(1)位非(~)运算把运算数调换到三十几人数字,然后把二进制数转换来它的二进制反码,最终把二进制数调换成浮点

数。实质上是对数字求负,然后减去1即为所得值。

 

    var box=~25;
    document.write(box);//输出-26

 

(2)位与(&)运算直接对数字的二进制情势展开演算,然后对左右一致职分的多个数位进行与运算,独有四个数位

都为1时才得出1,其他的均为0.

 

    var box=25&3;
    document.write(box);//输出1

 

(3)位或(|)运算也是直接对数字的二进制方式展开估测计算,然后对左右一致职位的多个数位进行或运算,只右三个数

位都为0时才得出0,其他的均为1.

 

    var box=25|3;
    document.write(box);//输出27

 

(4)位异或(^)也是平素对二进制格局张开演算。当唯有三个数位存放的是1时,它才回来1。别的的再次回到0。也正是

八个数位一样一时间重回0,不相同临时候重回1.

 

    var box=25^3;
    document.write(box);//输出26

 

(5)左移运算也是对二进制数进行操作,相等于第三个操作数乘以(2的左移位数十次幂)的积。

 

    var box=25<<3;
    document.write(box);//25左移3位相当于25乘以(2的3次幂),因此输出200

 

(6)有记号右移运算也是对二进制数进行操作,相等于第贰个操作数除以(2的右移位数11回幂)的商。

 

    var box=24>>2; 
    document.write(box);//输出6

 

(7)无符号右移运算也是对二进制数进行操作,对李有贞数,与有暗记右移是一律的结果,可是对于负数,就能够怀有

不同。

切切实实详尽的精晓ECMAScript 位运算符,能够访谈ECMAScript位运算符。

六赋值运算符

赋值运算符包含:=(),+=(),-=(),*=(),/=(),%=(),<<=(),>>=(),>>>=()。

 

      var box=100; 
      box+=100;//相当于box=box+100
      document.write("box="+box);//输出box=200

 

七别样运算符

1字符串运算符:“+”,它的成效是将五个字符串想加。法规:只要有二个字符串就能够。

 

    var box=100+"10"';
    document.write("box="+box);//输出100100   

 

2逗号运算符,能够在一条语句中推行两个操作

 

    var box=100,age=200,height=300;
    document.write("box="+box);//输出box=100

 

3伊利操作符:

 

    var box=(3>4)?"对":"错";
    document.write(box);//输出错

 

若果想更详实的领悟ECMAScript运算符的文化,能够访谈JavaScript高端教程中的ECMASscript一元运算符。这

个类别中有详尽的演算符教程。对于JS的运算符来说,大家能够对照着C++,C#和Java来学,那几个依然万分的轻巧

的。

JavaScript脚本语言描述了一组用于操作数据值的运算符,富含一元运算符,布尔运算符,算术...

var box1=100; 
++box1;//相当于box=box+1 
document.write("box1="+box1+"<br/>");//输出box1=101 
var box2=100; 
--box2;//相当于box=box2-1 
document.write("box2="+box2);//输出box2=99 

内置和前置的分别

var box=100; 
var age=++box;//box先累加1为101,再赋值给age为101 
var height=box++;//box先赋值给height为101,box再累加为102 
document.write("age="+age+"<br/>");//输出age=101 
document.write("height="+height+"<br/>");//输出height=101 
document.write("box="+box);//输出box=102,原因是box经过了两次累加,所以是102 

       在并未有赋值操作,前置和前置是一模一样的。但在赋值操作时,要是递增或递减运算符后置,那么前置的运算符会先累加或累减再赋值,假设是后置运算符则先赋值再加上或累减。
(2)加和减运算符 用来取正或取负运算,也可能有把数字字符串转变为数值情势的效力。

var box = "20"; 
document.write(typeof box+"<br/>"); //输出string 
var age=-box; 
document.write(age+"<br/>");//输出-20 
document.write(typeof age); //输出number 

二、算术运算符
       JavaScript语言中明确了各样算术运算符,即+,-,*,/和%(取余)。假诺在算术运算符的值不是数值,那么它会先选择Number()转型函数将其转移为数值(隐式转变)。

var box=100+"100"; 
document.write("box="+box+"<br/>");//输出100100 
document.write(typeof box);//输出string 

       那是为什么吧?JavaScript语言中的做算术运算时,只要在这之中一个是字符串,那么结果就能调换为字符串。相当于字符串连接符,不能再算作是加法算术运算符。

var box="100"-10; 
document.write("box="+box+"<br/>");//输出90 
var age=5/4; 
document.write("age="+age+"<br/>");//输出1.25 
var height=("你的年龄是:"+(10+10));//括号强制优先级 
document.write(height);//输出你的年龄是:20 

       取余

var box=10%3; 
document.write("box="+box);//输出1 

三、关系运算符        用于开展相比的演算符称作为涉及运算符:<(小于),>(大于),<=(小于等于),>=(大于等于),==(相对),!=(不等),===(恒等或全等),!==(不全等或不恒等)。关系运算符大繁多再次来到的是二个布尔值。
       和别的运算符一样,当提到运算符操作非数值时要遵照以下准则:
       1八个操作符都以数值,则数值比较
       2多个操作数都以字符串,则相比八个字符串对应的字符编码值
       3多少个操作数有五个是数值,则将另一个调换为数值,在张开数值比较
       4七个操作数有一个是目的,则先调用value()方法或toString()方法,再用结果相比较。

var box1=3>2; 
document.write(box1+"<br/>");//输出true 
var box2="3">22; 
document.write(box2+"<br/>");//输出false 
var box3="3">"22"; 
document.write(box3+"<br/>");//输出true 
var box4="a">"B";//a为97,B为66 
document.write(box4+"<br/>");//输出true 
var box5= "Blue"<"alpha";//Blue的第一个字母是B,alpha的第一个字母是a,a为97,B为66 
document.write(box5) //输出true 

       在非常和分化的可比上,假若操作数是非数值,则依照以下准绳:
       1贰个操作数是布尔值,则相比前边将其改换为数值,false转成0,true转成1。
       2三个操作数是字符串,则比较后边将其转成为数值再相比。
       3二个操作数是目标,则先调用value()方法或toString()方法再相比。
       4没有要求任何调换的事态下,null和undefined是相等的
       5三个操作数是NaN,则==再次回到false,!=再次回到true,并且NaN和本人不等
       6七个操作数都以指标,则相比它们是或不是是同一个对象,假诺都对准同贰个指标,则赶回true,不然再次来到false
       7在全等和全不等的剖断上,譬喻值和花色都非凡,才重返true,不然再次回到fasle。

var box1='2'==2; 
document.write(box1+"<br/>");//输出true,比较的只是数值 
var box2={}=={}; 
document.write(box2+"<br/>");//输出false,因为比较的是它们的地址,每个新创建对象的引用地址都不同。 
var box3=null==undefined; 
document.write(box3+"<br/>");//输出true,因为均为空数值 
var box4='2'===2; 
document.write(box4+"<br/>");//输出false,两个操作数的数据类型不相等 
var box5=null===undefined; 
document.write(box5);//输出false,两个操作数的数据类型不相等 

四逻辑运算符
       JavaScript语言中的逻辑运算符日常意义于布尔值的操作,一般和关系运算符协作使用,有四个逻辑运算符:&&(逻辑与),||(逻辑或)和!(逻辑非)。
       (1)&&代表两侧都必得是true,才重临true。        固然两侧的操作数有三个操作数不是布尔值的情景下,与运算就不必然重回布尔值,此时遵守上面包车型客车平整:
       1率先个操作数是目的,则赶回第三个操作数
       2次之操作数是目的,则第一个操作数重返true,才回去第二个操作数,不然重返false
       3三个操作数是null,则赶回null
       4三个操作数是undefined,则重临undefined
       5假使二个运算数是目的,另一个是 Boolean 值,重临该指标
      逻辑与运算符属于短路操作,假若有第二个操作数重临的是false,第3个不管是true还是false都回到false。

var box1={}&&(5>4); 
document.write(box1+"<br/>");//输出true 
var box2=(5>4)&&{}; 
document.write(box2+"<br/>");//输出[object Object] 
var box3=(3>4)&&{}; 
document.write(box3);//输出false 

      (2)||代表两侧有一个是true,就回到true。       假如两侧的操作数有二个操作数不是布尔值的景观下,与运算就不自然重回布尔值,此时服从上边包车型大巴条条框框:
      1首先个操作数是目的,则赶回第一无不操作数
      2先是个操作数的求值结果为fasle,则赶回第二个操作数
      3两个操作数都以目的,则赶回第一个操作数
      4五个操作数都以null,则赶回null
      5多个操作数都是undefined,则重回undefined
      6多少个操作数都以NaN,则赶回NaN
      逻辑或运算符也属于短路操作,假如有第二个操作数重回的是true,首个不管是true依然false都回到true。

var box1={}||(5>4); 
document.write(box1+"<br/>");//输出[object Object] 
var box2=(5>4)||{}; 
document.write(box2+"<br/>");//输出true 
var box3=(3>4)||{}; 
document.write(box3);//输出[object Object] 

      (3)!逻辑非运算符能够作用与其他值,无论这一个值是哪些数据类型,这么些运算符都会回到贰个布尔值,它的流程是:先将以此值调换到布尔值,然后取反,法规如下:
      1操作数是叁个指标,再次回到false
      2操作数是二个空字符串,重返true
      3操作数是多少个非空字符串,重返false
      4操作数是数值0,重临true
      5操作数是轻易非0数值,再次来到false
      6操作数是null,重回true
      7操作数是NaN,重回true
      8操作数是undefined,重回true

var box=!{}; 
document.write(box);//输出false 

五、位运算符
      JavaScript语言中总结了三种位运算符:~(位非),&(位与),|(位或),^(位异或),<<(左移),>>(有符右移号),>>>(无符号右移)
       (1)位非(~)运算把运算数调换到三11人数字,然后把二进制数调换到它的二进制反码,最终把二进制数调换来浮点数。实质上是对数字求负,然后减去1即为所得值。

var box=~25; 
document.write(box);//输出-26 

       (2)位与(&)运算直接对数字的二进制格局展开演算,然后对内外一致职位的两个数位进行与运算,独有三个数位都为1时才得出1,别的的均为0.

var box=25&3; 
document.write(box);//输出1 

       (3)位或(|)运算也是平昔对数字的二进制格局张开总计,然后对左右一致职位的七个数位实行或运算,只右七个数位都为0时才得出0,别的的均为1.

var box=25|3; 
document.write(box);//输出27 

       (4)位异或(^)也是一向对二进制情势开展览演出算。当独有多个数位存放的是1时,它才回到1。别的的重返0。也正是四个数位同样期再次回到0,不相同一时间重回1.

var box=25^3; 
document.write(box);//输出26 

       (5)左移运算也是对二进制数举行操作,相等于第八个操作数乘以(2的左移位多次幂)的积。

var box=25<<3; 
document.write(box);//25左移3位相当于25乘以(2的3次幂),因此输出200 

        (6)有号子右移运算也是对二进制数举办操作,相等于第一个操作数除以(2的右移位数十三遍幂)的商。

var box=24>>2; 
document.write(box);//输出6 

       (7)无符号右移运算也是对二进制数举办操作,对柳盈瑄数,与有标记右移是一致的结果,不过对于负数,就会所不相同。      

六、赋值运算符
      赋值运算符包罗:=(),+=(),-=(),*=(),/=(),%=(),<<=(),>>=(),>>>=()。

var box=100; 
box+=100;//相当于box=box+100 
document.write("box="+box);//输出box=200 

七、其余运算符
**
1)、字符串运算符**:“+”,它的效果与利益是将几个字符串想加。法则:只要有三个字符串就能够。

var box=100+"10"'; 
document.write("box="+box);//输出100100 

2)、逗号运算符,可以在一条语句中施行多少个操作

var box=100,age=200,height=300; 
document.write("box="+box);//输出box=100 

3)、安慕希操作符:

var box=(3>4)?"对":"错"; 
document.write(box);//输出错 

      倘使想更详尽的了然ECMAScript运算符的知识,能够访谈JavaScript高端教程中的ECMASscript一元运算符那几个体系中有详细的运算符教程。对于JS的运算符来讲,我们得以对照着C++,C#和Java来学,这些仍旧非常的轻便的。

上述就是关于JavaScript的表达式与运算符的全部内容,希望对大家的读书抱有帮衬。

你只怕感兴趣的文章:

  • Javascript主题阅读有感之表明式和平运动算符
  • js利用与或运算符优先级完毕if else条件判断表明式
  • javascript表达式和平运动算符详解

本文由王中王开奖结果发布于关于计算机,转载请注明出处:详解JavaScript的表明式与运算符,轻易学习JavaSc

关键词:

上一篇:位置大小操作,之位置大小操作
下一篇:没有了