自增和自減
代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>自增和自減</title>
<script type="text/javascript">
/*
自增 ++
- 通過自增可以使變量在自身的基礎(chǔ)上增加1
- 對于一個變量自增以后酪捡,原變量的值會立即自增1
- 自增分成兩種:后++(a++) 和 前++(++a)
無論是a++還是++a,都會立即使原變量的值自增1
不同的是a++和++a的值不同
a++的值等于原變量的值(自增前的值)
++a的值等于新值 (自增后的值)
自減 --
- 通過自減可以使變量在自身的基礎(chǔ)上減1
- 自減分成兩種:后--(a--) 和 前--(--a)
無論是a--還是--a都會立即使原變量的值自減1
不同的是a-- 和 --a的值不同
a-- 是變量的原值 (自減前的值)
--a 是變量的新值 (自減以后的值)
*/
var a = 1;
//使a自增1
//a++;
//++a;
//console.log("++a = " + ++a);
//console.log("a++ = " + a++);
//console.log("a = " + a);
var c = 10;
//第一次c++,是在10的基礎(chǔ)上自增
c++;
//第二次c++,是在11的基礎(chǔ)上自增
//console.log(c++);
var d = 20;
//console.log(++d);//21
//console.log(++d);//22
//20 + 22 + 22
var result = d++ + ++d + d ;
// console.log("result = " + result);
d = 20
d = d++;
/*
相當(dāng)于
var e = d++;
d = e;
*/
// console.log("d = "+d);
var num = 10;
//num--;
//--num;
// console.log(num--);
console.log(--num);
console.log("num = "+num);
</script>
</head>
<body>
</body>
</html>
自增和自減的練習(xí)
代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>自增和自減的練習(xí)</title>
<script type="text/javascript">
var n1=10;
var n2=20;
var n = n1++; //先賦值n=10 后自增n1=11
console.log('n=' + n); //10
console.log('n1=' + n1); //11
n = ++n1; //先自增n1=12 后賦值n=12
console.log('n=' + n); //12
console.log('n1=' + n1); //12
n = n2--;//先賦值n=20 后自減n2=19
console.log('n=' + n); //20
console.log('n2=' + n2); //19
n = --n2; //先自減n2=18 后賦值n=18
console.log('n=' + n); //18
console.log('n2=' + n2); //18
</script>
</head>
<body>
</body>
</html>
運算符
代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>邏輯運算符</title>
<script type="text/javascript">
/*
JS中為我們提供了三種邏輯運算符
! 非
- !可以用來對一個值進行非運算
- 所謂非運算就是值對一個布爾值進行取反操作,
true變false,false變true
- 如果對一個值進行兩次取反,它不會變化
- 如果對非布爾值進行元素首有,則會將其轉(zhuǎn)換為布爾值,然后再取反
所以我們可以利用該特點枢劝,來將一個其他的數(shù)據(jù)類型轉(zhuǎn)換為布爾值
可以為一個任意數(shù)據(jù)類型取兩次反井联,來將其轉(zhuǎn)換為布爾值,原理和Boolean()函數(shù)一樣
&& 與
- &&可以對符號兩側(cè)的值進行與運算并返回結(jié)果
- 運算規(guī)則
- 兩個值中只要有一個值為false就返回false您旁,
只有兩個值都為true時烙常,才會返回true
- JS中的“與”屬于短路的與,
如果第一個值為false鹤盒,則不會看第二個值
|| 或
- ||可以對符號兩側(cè)的值進行或運算并返回結(jié)果
- 運算規(guī)則:
- 兩個值中只要有一個true蚕脏,就返回true
如果兩個值都為false,才返回false
- JS中的“或”屬于短路的或
如果第一個值為true侦锯,則不會檢查第二個值
*/
var a = true;
//對a進行非運算
a = !a;
//console.log("a = " + a);
var b = 10;
b = !!b;
//console.log("b = " + b);
//console.log(typeof b);
//如果兩個值都是true則返回true
var result = true && true;
//只要有一個false驼鞭,就返回false
result = true && false;
result = false && true;
result = false && false;
//console.log("result = "+result);
//第一個值為true,會檢查第二個值
//true && alert("看我出不出來3吲觥挣棕!");
//第一個值為false汇竭,不會檢查第二個值
//false && alert("看我出不出來!穴张!");
//兩個都是false,則返回false
result = false || false;
//只有有一個true两曼,就返回true
result = true || false;
result = false || true ;
result = true || true ;
//console.log("result = "+result);
//第一個值為false皂甘,則會檢查第二個值
//false || alert("123");
//第一個值為true,則不再檢查第二個值
true || alert("123");
</script>
</head>
<body>
</body>
</html>
與或運算
代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>與或運算</title>
<script type="text/javascript">
/*
&& || 非布爾值的情況
- 對于非布爾值進行與或運算時悼凑,會先將其轉(zhuǎn)換為布爾值偿枕,然后再運算,并且返回原值
- 與運算:
- 如果第一個值為true户辫,則必然返回第二個值
- 如果第一個值為false渐夸,則直接返回第一個值
- 或運算
- 如果第一個值為true,則直接返回第一個值
- 如果第一個值為false渔欢,則返回第二個值
*/
//true && true
//與運算:如果兩個值都為true墓塌,則返回后邊的
var result = 2 && 1;
//與運算:如果兩個值中有false,則返回靠前的false
//false && true
result = 0 && 2;
result = 2 && 0;
//false && false
result = NaN && 0;
result = 0 && NaN;
//true || true
//如果第一個值為true奥额,則直接返回第一個值
result = 2 || 1;
result = 2 || NaN;
result = 2 || 0;
//如果第一個值為false苫幢,則直接返回第二個值
result = NaN || 1;
result = NaN || 0;
result = "" || "hello";
result = -1 || "你好";
console.log("result = "+result);
</script>
</head>
<body>
</body>
</html>
賦值運算符
代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>賦值運算符</title>
<script type="text/javascript">
/*
=
可以將符號右側(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
*/
var a = 10;
//a = a + 5;
//a += 5;
//a -= 5;
//a *= 5;
// a = a%3;
a %= 3;
console.log("a = "+a);
</script>
</head>
<body>
</body>
</html>
關(guān)系運算符
代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>關(guān)系運算符</title>
<script type="text/javascript">
/*
通過關(guān)系運算符可以比較兩個值之間的大小關(guān)系,
如果關(guān)系成立它會返回true垫挨,如果關(guān)系不成立則返回false
> 大于號
- 判斷符號左側(cè)的值是否大于右側(cè)的值
- 如果關(guān)系成立韩肝,返回true,如果關(guān)系不成立則返回false
>= 大于等于
- 判斷符號左側(cè)的值是否大于或等于右側(cè)的值
< 小于號
<= 小于等于
非數(shù)值的情況
- 對于非數(shù)值進行比較時九榔,會將其轉(zhuǎn)換為數(shù)字然后再比較
- 如果符號兩側(cè)的值都是字符串時哀峻,不會將其轉(zhuǎn)換為數(shù)字進行比較,而會分別比較字符串中字符的Unicode編碼
*/
var result = 5 > 10;//false
result = 5 > 4; //true
result = 5 > 5; //false
result = 5 >= 5; //true
result = 5 >= 4; //true
result = 5 < 4; //false
result = 4 <= 4; //true
//console.log("result = "+result);
//console.log(1 > true); //false
//console.log(1 >= true); //true
//console.log(1 > "0"); //true
//console.log(10 > null); //true
//任何值和NaN做任何比較都是false
//console.log(10 > "hello"); //false
//console.log(10 >= "hello"); //false
//console.log(10 < "hello"); //false
//console.log(10 <= "hello"); //false
//console.log(true > false); //true
//console.log("1" < "5"); //true
//console.log("11" < "5"); //true
//比較兩個字符串時哲泊,比較的是字符串的字符編碼
//console.log("a" < "b");//true
//比較字符編碼時是一位一位進行比較
//如果兩位一樣剩蟀,則比較下一位,所以借用它來對英文進行排序
// console.log("abc" < "b");//true
// console.log("bbc" < "b");//false
//console.log("abc" < "bcd");//true
//比較中文時沒有意義
//console.log("你" > "我"); //false
// console.log("月" > "我"); //true
//如果比較的兩個字符串型的數(shù)字攻旦,可能會得到不可預(yù)期的結(jié)果
//注意:在比較兩個字符串型的數(shù)字時喻旷,一定一定一定要轉(zhuǎn)型
console.log("11123123123123123123" < +"5"); //false
</script>
</head>
<body>
</body>
</html>
unicode編碼
代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Unicode編碼</title>
<script type="text/javascript">
/*
在字符串中使用轉(zhuǎn)義字符輸入Unicode編碼
\u四位編碼
*/
console.log("\u2F81");
console.log("\u2620");
</script>
</head>
<body>
<!--
在網(wǎng)頁中使用Unicode編碼:
&#編碼;
注意:這里的編碼需要的是10進制
-->
<h1 style="font-size: 200px;">☠</h1>
<h1 style="font-size: 200px;">⚀</h1>
</body>
</html>
相等運算符
代碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>相等運算符</title>
<script type="text/javascript">
/*
相等運算符用來比較兩個值是否相等,
如果相等會返回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
</script>
</head>
<body>
</body>
</html>