1.相等運算符
/*
相等運算符用來比較兩個值是否相等退个,
如果相等會返回true募壕,否則返回false
使用 == 來做相等運算
- 當(dāng)使用==來比較兩個值時,如果值的類型不同语盈,則會自動進行類型轉(zhuǎn)換舱馅,將其轉(zhuǎn)換為相同的類型,然后再比較
不相等
不相等用來判斷兩個值是否不相等刀荒,如果不相等返回true代嗤,否則返回false
- 使用 != 來做不相等運算
- 不相等也會對變量進行自動的類型轉(zhuǎn)換,如果轉(zhuǎn)換后相等它也會返回false
===
全等
- 用來判斷兩個值是否全等缠借,它和相等類似干毅,不同的是它不會做自動的類型轉(zhuǎn)換
如果兩個值的類型不同,直接返回false
!==
不全等
- 用來判斷兩個值是否不全等泼返,和不等類似硝逢,不同的是它不會做自動的類型轉(zhuǎn)換
如果兩個值的類型不同,直接返回true
*/
//console.log(1 == 1); //true
var a = 10;
//console.log(a == 4); //false
//console.log("1" == 1); //true
//console.log(true == "1"); //true
//console.log(null == 0); //false
/*
undefined 衍生自 null
所以這兩個值做相等判斷時绅喉,會返回true
*/
//console.log(undefined == null);//true
/*
NaN不和任何值相等渠鸽,包括他本身
*/
//console.log(NaN == "1"); //false
//console.log(NaN == "undefined"); //false
//console.log(NaN == NaN); //false
var b = NaN;
//判斷b的值是否是NaN
//console.log(b == NaN);//無法判斷,只會返回false
/*
可以通過isNaN()函數(shù)來判斷一個值是否是NaN
如果該值是NaN則返回true柴罐,否則返回false
*/
//console.log(isNaN(b)); //true
//console.log(10 != 5); //true
//console.log(10 != 10); //false
//console.log("abcd" != "abcd"); //false
//console.log("1" != 1);//false
//console.log("123" === 123);//false
//console.log(null === undefined);//false
console.log(1 != "1"); //true
2.條件運算符
條件運算符也叫三元運算符
語法:
條件表達式?語句1:語句2;
- 執(zhí)行的流程:
條件運算符在執(zhí)行時徽缚,首先對條件表達式進行求值,
如果該值為true丽蝎,則執(zhí)行語句1猎拨,并返回執(zhí)行結(jié)果
如果該值為false,則執(zhí)行語句2屠阻,并返回執(zhí)行結(jié)果
如果條件的表達式的求值結(jié)果是一個非布爾值红省,會將其轉(zhuǎn)換為布爾值然后在運算
*/
//true?alert("語句1"):alert("語句2");
//false?alert("語句1"):alert("語句2");
var a = 300;
var b = 143;
var c = 50;
//a > b ? alert("a大"):alert("b大");
//獲取a和b中的最大值
//var max = a > b ? a : b;
//獲取a b c 中的最大值
//max = max > c ? max : c;
//這種寫法不推薦使用,不方便閱讀
var max = a > b ? (a > c ? a :c) : (b > c ? b : c);
//console.log("max = "+max);
//"hello"?alert("語句1"):alert("語句2");
3.運算符的優(yōu)先級
/*
, 運算符
使用,可以分割多個語句国觉,一般可以在聲明多個變量時使用
*/
//使用,運算符同時聲明多個變量
//var a, b, c;
//可以同時聲明多個變量并賦值
//var a=1, b=2, c=3;
//alert(b);
/*
就和數(shù)學(xué)中一樣吧恃,在JS中運算符也有優(yōu)先級,
比如:先乘除 后加減
在JS中有一個運算符優(yōu)先級的表麻诀,
在表中越靠上優(yōu)先級越高痕寓,優(yōu)先級越高越優(yōu)先計算
如果優(yōu)先級一樣,則從左往右計算
但是這個表我們并不需要記憶蝇闭,如果遇到優(yōu)先級不清楚
可以使用()來改變優(yōu)先級
*/
// var result = 1 + 2 * 3;
//var result = 1 + 23;
/*
如果||的優(yōu)先級高呻率,或者兩個一樣高,則應(yīng)該返回3
如果與的優(yōu)先級高呻引,則應(yīng)該返回1
*/
var result = 1 || 2 && 3;
console.log("result = " + result);
4.代碼塊
我們的程序是由一條一條語句構(gòu)成的
語句是按照自上向下的順序一條一條執(zhí)行的
在JS中可以使用{}來為語句進行分組,
同一個{}中的語句我們稱為是一組語句礼仗,
它們要么都執(zhí)行,要么都不執(zhí)行,
一個{}中的語句我們也稱為叫一個代碼塊
在代碼塊的后邊就不用再編寫;了
JS中的代碼塊元践,只具有分組的的作用韭脊,沒有其他的用途
代碼塊內(nèi)容的內(nèi)容,在外部是完全可見的