>  기사  >  웹 프론트엔드  >  JavaScript의 표현식 및 연산자에 대한 자세한 설명

JavaScript의 표현식 및 연산자에 대한 자세한 설명

巴扎黑
巴扎黑원래의
2017-07-29 17:15:101130검색

이 글은 주로 자바스크립트 표현식과 연산자를 소개합니다. 필요한 친구들이 참고하면 됩니다

자바스크립트 스크립트 언어는 단항 연산자, 부울 연산자, 산술 연산 연산자, 관계 연산자, 삼항 연산자 등 데이터 값을 연산하는 데 사용되는 연산자 집합을 설명합니다. , 비트 연산자 및 할당 연산자.
표현식은 변수 이름(또는 리터럴) 및 연산자를 포함하는 JavaScript 언어의 "문구"입니다. 가장 간단한 표현식은 리터럴 또는 변수 이름입니다. 물론 간단한 표현식을 결합하여 복잡한 표현식을 만드는 방법도 있습니다.
1. 단항 연산자
(1)증분++ 및 감소--


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

prefix와 postfix의 차이점


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

2. 산술 연산자
      JavaScript 언어에는 +, -, *, / 및 %(나머지)라는 5개의 산술 연산자가 지정되어 있습니다. 산술 연산자의 값이 숫자 값이 아닌 경우 먼저 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

3. 관계 연산자
비교에 사용되는 연산자를 관계 연산자라고 합니다. 721a6d95caad0192d85f5acb800323de(큼),< ;= ( 작거나 같음), >=(크거나 같음), ==(상대), !=(같지 않음), ===(동일 또는 일치), !==(일치 또는 동일하지 않음) . 대부분의 관계 연산자는 부울 값을 반환합니다. ㅋㅋㅋ                                                  ’ ’ ’ s
          ’ ’ ’ s 1 대 1.
                                                                  해당 문자 인코딩 값
  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과 정의되지 않음은 동일합니다.
  5 피연산자 중 하나가 NaN이면 ==는 false를 반환하고, !=는 true를 반환하며 NaN은 그 자체와 같지 않습니다.
  6 두 피연산자가 모두 객체이고, 피연산자가 객체인지 비교합니다. 둘 다 동일한 객체를 가리키면 true를 반환하고, 그렇지 않으면 false를 반환합니다. Fasle.


var box1=&#39;2&#39;==2; 
document.write(box1+"<br/>");//输出true,比较的只是数值 
var box2={}=={}; 
document.write(box2+"<br/>");//输出false,因为比较的是它们的地址,每个新创建对象的引用地址都不同。 
var box3=null==undefined; 
document.write(box3+"<br/>");//输出true,因为均为空数值 
var box4=&#39;2&#39;===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,第二个不管是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语言中包括了七种位运算符:~(位非),&(位与),|(位或),^(位异或),07a9f8d2db86bbcbe97add37a18921f4>(有符右移号),>>>(无符号右移)
       (1)位非(~)运算把运算数转换成32位数字,然后把二进制数转换成它的二进制反码,最后把二进制数转换成浮点数。实质上是对数字求负,然后减去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)无符号右移运算也是对二进制数进行操作,对于正数,与有符号右移是相同的结果,但是对于负数,就会所不同。
     

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


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

七、其他运算符
1)、字符串运算符:“+”,它的作用是将两个字符串想加。规则:只要有一个字符串即可。


var box=100+"10"&#39;; 
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의 표현식 및 연산자에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.