表達式和語句的區別
你好,這個問題不高深,而且也沒必要去深究,有很多人都分不清,甚至在有些教程里面都會搞混淆掉,盡量意會吧。
在程序設計語言中,語句指的是執行單元,通常以行為單位,表達式指的是可用于計算的式子,即可能產生一個值的式子。語句可以包含有表達式,表達式也可以單獨形成一個語句。
例如:在:aa=35;bb=1+aa;或者:aa=function (){return 35};bb=1+aa();中的1+aa()就是表達式。或者:function aa(var aa){alert aa+1;}bb=2;aa(bb+56);中的bb+56就是表達式。
下面這句:aa++;就是一個由一個表達式構成的語句。只要知道表達式是可能產生一個結果(值)的式子就可以了。
另,如果你聽到或看到有人說if語句、for語句,其實大多數情況指的都是if分支結構,for循環結構。
表達式和語句的區別
表達式:
表達式是操作符、操作數和標點符號組成的序列,其目的是用來說明…個計算過程。
表達式可以嵌套,例如:2+3+(5*sizeof(int))/345。
表達式根據某些約定、求值次序、結合和優先級規則來進行計算。
所謂約定,即類型轉換的約定。例如:
float a;
a=5/2;
結果。得到值為2。5/2是整數除法取整, 因為5和2都是整數,不會由于a是float型而輕易改變運算的性質。
所謂求值次序,是指表達式中各個操作數的求值次序視編譯器不同而不同。見3.9節。
所謂結合性,是指表達式中出現同等優先級的操作符時,該先做哪個操作的規定。例如:
d=a+b-c; //C++規定,加減法先左后右,先做a+b,其結果再減去c
d=a=3; //C++規定,等號是先右后左。先做a=3,其結果再賦給d
所謂優先級,是指不同優先級的操作符,總是先做優先級高的操作。例如:
d=a+b*c; //乘法優先級比加法高。先做b*c,其結果再與a相加
表達式語句:
C++中所有的操作運算都通過表達式來實現。 由表達式組成的語句稱為表達式語句。
它由一個表達式后接一個分號“;”組成。
C語言中表達式和表達式語句的區別(什么又叫做表達式)
表達式:
表達式是操作符、操作數和標點符號組成的序列,其目的是用來說明…個計算過程。
表達式可以嵌套,例如:2+3+(5*sizeof(int))/345。
表達式根據某些約定、求值次序、結合和優先級規則來進行計算。
所謂約定,即類型轉換的約定。例如:
float a;
a=5/2;
結果。得到值為2。5/2是整數除法取整, 因為5和2都是整數,不會由于a是float型而輕易改變運算的性質。
所謂求值次序,是指表達式中各個操作數的求值次序視編譯器不同而不同。見3.9節。
所謂結合性,是指表達式中出現同等優先級的操作符時,該先做哪個操作的規定。例如:
d=a+b-c; //C++規定,加減法先左后右,先做a+b,其結果再減去c
d=a=3; //C++規定,等號是先右后左。先做a=3,其結果再賦給d
所謂優先級,是指不同優先級的操作符,總是先做優先級高的操作。例如:
d=a+b*c; //乘法優先級比加法高。先做b*c,其結果再與a相加
表達式語句:
C++中所有的操作運算都通過表達式來實現。 由表達式組成的語句稱為表達式語句。
它由一個表達式后接一個分號“;”組成。
js中表達式和語句的區別
一、兩者的定義區別:一個表達式會產生一個值,它可以放在任何需要一個值的地方,如語句則是由分號分隔的句子或命令。如果在表達式后面加上一個“;”分隔符,這就被稱為“表達式語句”。它表明“只有表達式,而沒有其他語法元素的語句”。
二、兩者的功能區別:表達式經常用作作為一個函數調用的參數,它可以放在任何需要一個值的地方。而語句則是一個行為,循環語句和if語句就是典型的語句,一個程序是由一系列語句組成的。
三、是否支持嵌套方式的區別:在javascript中所有表達式都有返回值,表達式均可以嵌套在別的表達式中,但語句不行,語句只能獨立出現。
擴展資料
表達式和語句之間,存在一種叫做表達式語句的。序基本上是一系列語句的結合(基礎聲明除外)。無論何時,當JavaScript需要編寫一條語句時,均可以寫入一個表達式。這樣的語句稱為表達式語句(expression statement)。但是反之并不成立,不能編寫一條語句來代替表達式。
例如:if語句var x;if (y >= 0) {x = y;} else {x = -y;}。與表達式類似的是條件運算符。上述語句可用以下語句代替var x = (y >= 0 ? y : -y);兩種表達均可實現一樣的作用效果。
參考資料來源:百度百科-javascript
怎樣區分表達式和表達式語句
凡是有值的都是表達式。具體包括:數字,標識符,字符常量,字符串常量,函數調用,以及以上幾種用運算符組合起來。
如a,a++,a+b,"dfsaf",f()。.
表達式后面加一個分號就構成了表達式語句。
為什么要用表達式語句呢?因為我們需要表達式的副作用,而不是它的值。
比如a++;和++a;這條表達式的值對我們來說沒什么意義,我們只是單獨希望他把a加一而已。
再比如函數調用。puts("haha");puts是有返回值的,但顯然我們并不關心。要的只是要他執行了就行。
注意,聲明是語句,不是表達式。for(;;)里面是表達式,而不是語句。
Javascript淺談之表達式和語句的區別
1.表達式(expressions)
表達式是由運算符構成,并運算產生結果的語法結構。每個表達式都會產生一個值,它可以放在任何需要一個值的地方,比如,作為一個函數調用的參數.下面的每行代碼都是一個表達式:
var a = (5 + 6) / 2; //表達式:(5 + 6) / 2
var b = (function(){ return 25;})(); //表達式: (function(){ return 25;})()
foo(a*b); //表達式:a*b
2.語句(statements)
語句則是由“;(分號)”分隔的句子或命令。如果在表達式后面加上一個“;”分隔符,這就被稱為“表達式語句”。它表明“只有表達式,而沒有其他語法元素的語句”。
var a = (5 + 6) / 2; //整行,賦值語句
if(a>12) { statements} //條件語句
var o = {}; //賦值語句
(function(obj){ obj.b = 23;})(o||{}); //表達式語句
一般的javascript中的語句分為下面幾種:
(1)聲明語句:變量聲明和函數聲明
(2)賦值語句
(3)控制語句:能夠對語句執行順序產生改變,包括條件語句和循環語句,當然還有比較特殊的標簽語句。
(4)表達式語句:這些語句去掉最后分號,都也可當表達式用的。常見的有:對象操作(new、delete)、函數調用(函數執行,必有返回值)等。
var num = 9; //聲明、賦值語句
vloop: //標簽語句
{ //其實這里大括號可以不需要的,在這里我只想向大家展示一下這種代碼塊結構而已
for(var i=1; i