表達(dá)式
表達(dá)式與數(shù)學(xué)中的定義相似材蛛,表達(dá)式是指具有一定的值、用操作符把常數(shù)和變量連接起來的代數(shù)式怎抛。一個(gè)表達(dá)式可以包含常數(shù)或變量卑吭。
生活中“再見”表達(dá)方法很多,如:英語(goodbye)马绝、網(wǎng)絡(luò)語(88)豆赏、肢體語(揮揮手)等。在JavaScript表達(dá)式無處不在富稻,所以一定要知道可以表達(dá)哪些內(nèi)容掷邦,看看下面幾種情況:
注意:串表達(dá)式中mychar是變量
注意:數(shù)值表達(dá)式中num是變量
注意:布爾表達(dá)式中num是變量
操作符
操作符是用于在JavaScript中指定一定動(dòng)作的符號(hào)。
(1)操作符
看下面這段JavaScript代碼椭赋。
sum = numa + numb;
其中的"="和"+"都是操作符抚岗。
JavaScript中還有很多這樣的操作符,例如哪怔,算術(shù)操作符(+宣蔚、-、*认境、/等)胚委,比較操作符(<、>叉信、>=亩冬、<=等),邏輯操作符(&&茉盏、||、枢冤!)鸠姨。
注意: “=” 操作符是賦值,不是等于淹真。
(2) "+"操作符
算術(shù)運(yùn)算符主要用來完成類似加減乘除的工作讶迁,在JavaScript中,“+”不只代表加法核蘸,還可以連接兩個(gè)字符串巍糯,例如:
mystring = "Java" + "Script"; // mystring的值“JavaScript”這個(gè)字符串
自加一,自減一 ( ++和- -)
算術(shù)操作符除了(+客扎、-祟峦、*、/)外徙鱼,還有兩個(gè)非常常用的操作符宅楞,自加一“++”针姿;自減一“--”。首先來看一個(gè)例子:
mynum = 10;
mynum++; //mynum的值變?yōu)?1
mynum--; //mynum的值又變回10
上面的例子中厌衙,mynum++使mynum值在原基礎(chǔ)上增加1距淫,mynum--使mynum在原基礎(chǔ)上減去1,其實(shí)也可以寫成:
mynum = mynum + 1;//等同于mynum++
mynum = mynum - 1;//等同于mynum--
比較操作符
我們先來做道數(shù)學(xué)題,數(shù)學(xué)考試成績(jī)中婶希,小明考了90分榕暇,小紅考了95分,問誰考的分?jǐn)?shù)高?
答: 因?yàn)椤?5 > 90”喻杈,所以小紅考試成績(jī)高彤枢。
其中大于號(hào)">" 就是比較操作符,小紅考試成績(jī)和小明考試成績(jī)就是操作數(shù)奕塑,并且是兩個(gè)操作數(shù)堂污。
也就是說兩個(gè)操作數(shù)通過比較操作符進(jìn)行比較,得到值為真(true)和假(false)龄砰。
在JavaScript中盟猖,這樣的比較操作符有很多,這些操作符的含義如下:
var a = 5;//定義a變量换棚,賦值為5
var b = 9; //定義b變量式镐,賦值為9
document.write (a<b); //a小于b的值嗎? 結(jié)果是真(true)
document.write (a>=b); //a大于或等于b的值嗎? 結(jié)果是假(false)
document.write (a!=b); //a不等于b的值嗎? 結(jié)果是真(true)
document.write (a==b); //a等于b的值嗎? 結(jié)果是假(false)
邏輯與操作符
數(shù)學(xué)里面的“a>b”,在JavaScript中還表示為a>b固蚤;數(shù)學(xué)中的“b大于a娘汞,b小于c”是“a<b<c”,那么在JavaScript中可以用&&表示夕玩,如下:
b>a && b<c //“&&”是并且的意思, 讀法"b大于a"并且" b小于c "
好比我們參加高考時(shí),在進(jìn)入考場(chǎng)前,必須出示準(zhǔn)考證和身份證,兩者缺一不可你弦,否則不能參加考試,表示如下:
if(有準(zhǔn)考證 &&有身份證)
{
進(jìn)行考場(chǎng)考試
}
“&&”是邏輯與操作符燎孟,只有“&&”兩邊值同時(shí)滿足(同時(shí)為真)禽作,整個(gè)表達(dá)式值才為真。
邏輯與操作符值表:
注意: 如果A為假揩页,A && B為假旷偿,不會(huì)在執(zhí)行B; 反之,如果A為真爆侣,要由 B 的值來決定 A && B 的值萍程。
邏輯或操作符
"||"邏輯或操作符,相當(dāng)于生活中的“或者”兔仰,當(dāng)兩個(gè)條件中有任一個(gè)條件滿足茫负,“邏輯或”的運(yùn)算結(jié)果就為“真”。
例如:本周我們計(jì)劃出游,可是周一至周五工作,所以周六或者周日哪天去都可以乎赴。即兩天中只要有一天有空朽褪,就可以出游了置吓。
var a=3;
var b=5;
var c;
c=b>a ||a>b; //b>a是true,a>b是false缔赠,c是true
邏輯或操作符值表:
注意: 如果A為真衍锚,A || B為真,不會(huì)在執(zhí)行B; 反之嗤堰,如果A為假戴质,要由 B 的值來決定 A || B 的值。
邏輯非操作符
"!"是邏輯非操作符踢匣,也就是"不是"的意思,非真即假告匠,非假即真。好比小華今天買了一個(gè)杯子离唬,小明說:"杯子是白色的"后专,小亮說:“杯子是紅色的”,小華說:"小明說的不是真話输莺,小亮說的不是假話"戚哎。猜猜小華買的什么顏色的杯子,答案:紅色杯子嫂用。
邏輯非操作符值表:
看看下面代碼型凳,變量c的值是什么:
var a=3;
var b=5;
var c;
c=!(b>a); // b>a值是true,! (b>a)值是false
c=!(b<a); // b<a值是false, ! (b<a)值是true
操作符優(yōu)先級(jí)
我們都知道,除法嘱函、乘法等操作符的優(yōu)先級(jí)比加法和減法高甘畅,例如:
var numa=3;
var numb=6
jq= numa + 30 / 2 - numb * 3; // 結(jié)果為0
如果我們要改變運(yùn)算順序,需添加括號(hào)的方法來改變優(yōu)先級(jí):
var numa=3;
var numb=6
jq= ((numa + 30) / (2 - numb)) * 3; //結(jié)果是-24.75
操作符之間的優(yōu)先級(jí)(高到低):
算術(shù)操作符 → 比較操作符 → 邏輯操作符 → "="賦值符號(hào)
如果同級(jí)的運(yùn)算是按從左到右次序進(jìn)行,多層括號(hào)由里向外往弓。
var numa=3;
var numb=6;
jq= numa + 30 >10 && numb * 3<2; //結(jié)果為false