自增與自減
自增 ++
- 通過自增可以使變量在自身的基礎(chǔ)上增加1
- 對于一個變量自增以后,原變量的值會立即自增1
- 自增分成兩種:后++(a++) 和 前++(++a)
無論是a++還是++a,都會立即使原變量的值自增1
不同的是a++和++a的值不同
a++的值等于原變量的值(自增前的值)
++a的值等于新值 (自增后的值)
自減 --
- 通過自減可以使變量在自身的基礎(chǔ)上減1
- 自減分成兩種:后--(a--) 和 前--(--a)
無論是a--還是--a都會立即使原變量的值自減1
不同的是a-- 和 --a的值不同
a-- 是變量的原值 (自減前的值)
--a 是變量的新值 (自減以后的值)
邏輯運(yùn)算符
三種邏輯運(yùn)算符
! 非
- !可以用來對一個值進(jìn)行非運(yùn)算
- 所謂非運(yùn)算就是值對一個布爾值進(jìn)行取反操作,
true變false,false變true
- 如果對一個值進(jìn)行兩次取反,它不會變化
- 如果對非布爾值進(jìn)行元素,則會將其轉(zhuǎn)換為布爾值,然后再取反
所以我們可以利用該特點(diǎn),來將一個其他的數(shù)據(jù)類型轉(zhuǎn)換為布爾值
可以為一個任意數(shù)據(jù)類型取兩次反,來將其轉(zhuǎn)換為布爾值,原理和Boolean()函數(shù)一樣
&& 與
- &&可以對符號兩側(cè)的值進(jìn)行與運(yùn)算并返回結(jié)果
- 運(yùn)算規(guī)則
- 兩個值中只要有一個值為false就返回false,
只有兩個值都為true時,才會返回true
- JS中的“與”屬于短路的與,
如果第一個值為false,則不會看第二個值
|| 或
- ||可以對符號兩側(cè)的值進(jìn)行或運(yùn)算并返回結(jié)果
- 運(yùn)算規(guī)則:
- 兩個值中只要有一個true,就返回true
如果兩個值都為false,才返回false
- JS中的“或”屬于短路的或
如果第一個值為true,則不會檢查第二個值
與或運(yùn)算
&& || 非布爾值的情況
- 對于非布爾值進(jìn)行與或運(yùn)算時,會先將其轉(zhuǎn)換為布爾值,然后再運(yùn)算,并且返回原值
- 與運(yùn)算:
- 如果第一個值為true,則必然返回第二個值
- 如果第一個值為false,則直接返回第一個值
- 或運(yùn)算
- 如果第一個值為true,則直接返回第一個值
- 如果第一個值為false,則返回第二個值
賦值運(yùn)算符
=
可以將符號右側(cè)的值賦值給符號左側(cè)的變量
+=
a += 5 等價于 a = a + 5
-=
a -= 5 等價于 a = a - 5
*=
a *= 5 等價于 a = a5
/=
a /= 5 等價于 a = a / 5
%=
a %= 5 等價于 a = a % 5
關(guān)系運(yùn)算符
> 大于號
- 判斷符號左側(cè)的值是否大于右側(cè)的值
- 如果關(guān)系成立,返回true,如果關(guān)系不成立則返回false
>= 大于等于
- 判斷符號左側(cè)的值是否大于或等于右側(cè)的值
< 小于號
<= 小于等于
非數(shù)值的情況
- 對于非數(shù)值進(jìn)行比較時,會將其轉(zhuǎn)換為數(shù)字然后再比較
- 如果符號兩側(cè)的值都是字符串時,不會將其轉(zhuǎn)換為數(shù)字進(jìn)行比較,而會分別比較字符串中字符的Unicode編碼
相等運(yùn)算符
使用 == 來做相等運(yùn)算
- 當(dāng)使用==來比較兩個值時,如果值的類型不同,則會自動進(jìn)行類型轉(zhuǎn)換,將其轉(zhuǎn)換為相同的類型,然后再比較
不相等
不相等用來判斷兩個值是否不相等,如果不相等返回true,否則返回false
- 使用 != 來做不相等運(yùn)算
- 不相等也會對變量進(jìn)行自動的類型轉(zhuǎn)換,如果轉(zhuǎn)換后相等它也會返回false
===
全等
- 用來判斷兩個值是否全等,它和相等類似,不同的是它不會做自動的類型轉(zhuǎn)換
如果兩個值的類型不同,直接返回false
!==
不全等
- 用來判斷兩個值是否不全等,和不等類似,不同的是它不會做自動的類型轉(zhuǎn)換
如果兩個值的類型不同,直接返回true
條件運(yùn)算符
條件運(yùn)算符也叫三元運(yùn)算符
語法:
條件表達(dá)式?語句1:語句2;
- 執(zhí)行的流程:
條件運(yùn)算符在執(zhí)行時,首先對條件表達(dá)式進(jìn)行求值,
如果該值為true,則執(zhí)行語句1,并返回執(zhí)行結(jié)果
如果該值為false,則執(zhí)行語句2,并返回執(zhí)行結(jié)果
如果條件的表達(dá)式的求值結(jié)果是一個非布爾值,會將其轉(zhuǎn)換為布爾值然后在運(yùn)算
運(yùn)算符的優(yōu)先級
先乘除后加減運(yùn)算
, 運(yùn)算符
使用,可以分割多個語句,一般可以在聲明多個變量時使用
代碼塊
我們的程序是由一條一條語句構(gòu)成的
語句是按照自上向下的順序一條一條執(zhí)行的
在JS中可以使用{}來為語句進(jìn)行分組,
同一個{}中的語句我們稱為是一組語句,
它們要么都執(zhí)行,要么都不執(zhí)行,
一個{}中的語句我們也稱為叫一個代碼塊
在代碼塊的后邊就不用再編寫;了
JS中的代碼塊,只具有分組的的作用,沒有其他的用途
代碼塊內(nèi)容的內(nèi)容,在外部是完全可見的
JS操作屬性
DOM是為了操作文檔(網(wǎng)頁)的API,document是它的一個對象
BOM是為了操作瀏覽器的API,window是它的一個對象
常用BOM對象還有:alert、定時器等
JS操作style屬性
ndow.onload = docment.getEKLementBYID('div');
div1.style.color = 'red';
div.style.background = 'gole';
div.style.fontsize = '30px';
JS操作class
.box01{
width: 200px;
height: 200px;
background-color: gold;
}
.box02{
width: 300px;
height: 300px;
background-color: red;
}
</style>
<script type="text/javascript">
winodw.onload = function(){
var div1 = document.getEIementBYID('div1');
div1.classNmae = 'box02';
}
JS函數(shù)
function aa(){
alert('hello!');
}
function aa(){
alert('hwllo');
}
aa();
<body>
????<input type="button" value="彈框" onclick="aa()">0
</body>