一、小程式代碼構成 1.創建文件 在app.json文件中,pages中,直接寫上要添加的文件的名及路徑,然後保存即可(此方法在Mac上親測沒成功), Mac創建頁面的方式: pages文件右鍵,新建文件,然後輸入文件名 ![](https://img2023.cnblogs.com/blog/29 ...
表達式:是由操作數和運算符(可選)構成的並產生運算結果的語法結構。例如:3+5
運算符:進行計算或者邏輯運算的符號,比如表達式中的 + 號
表達式分類:算術、關係、邏輯、賦值、組合
算術運算符
以下符號都是算數運算符,運算符的關鍵詞就是運算
意義 | 運算符 |
---|---|
加 | + |
減 | - |
乘 | * |
除 | / |
取餘 | % |
在算數表達式中, 乘法和除法的優先順序要高於加法和減法;
不過可以使用括弧來改變運算的順序
1 + 1 = 2
// 1 + 2 先於 乘4 運算 , 括弧改變了又相繼
(1+2) * 4 = 12
// 取餘操作,只關註餘數
11 % 3 = 2
// 能夠除盡的,餘數是0
9 % 3 = 0 ;
隱式類型轉換
- 如果參與數學運算的操作數不是數字類型,那麼JS會自動將操作數轉成數字型,。
- 隱式轉換的本質是內部調用Number() 函數
-
- 號比較特殊, 如果 是 數字 和 字元串 相加 表示連接,並不會發生隱式類型轉換
// 除了加號外都可以用隱式類型轉換, 因為 加號 會代表 連接符
3 * '4' = 12
// + 表示連接符,而非 運算符
3 + '4' = '34';
小數運算
在JS中,有些小數運算不是很精確,會有一些精度損失
在進行小數運算的時候,要調用 toFixed() 方法保留指定的小數位數
0.1 + 0.33 // 輸出 0.43000000000000005
// 使用 toFixed正確輸出
Number(0.1 + 0.33).toFixed(2)
其他相關運算
冪運算
- 使用Math.pow() 函數進行冪運算
- 使用Math.sqrt() 函數進行開根號
// 計算2的3次方
Math.pow(2,3);
// 9 開根號
Math.sqrt(9)
向上取整和向下取整
- 使用函數 Math.ceil() 向上取整
- 使用函數 Math.floor() 向下取整
Math.ceil(2.3) // 輸出3
Math.floor(2.3) // 輸出2
Math.ceil(-2.3) // 輸出 -2
Math.floor(-2.3) // 輸出 -3
關係運算符
以下的符號都是關係運算符, 關係運算符的關鍵詞就是比較
意義 | 運算符 |
---|---|
大於 | > |
小於 | < |
大於或等於 | >= |
小於或等於 | <= |
等於 | = |
不等於 | != |
全等於 | === |
不全等於 | !== |
== 和 === 的區別
== 雙等運算符不比較值的類型,它會進行隱式類型轉換後比較值是否相等
=== 三等運算符不僅比較值是否相同,也比較類型是否相同
特殊值比較
// 輸出true。
undefined == null ;
// 輸出false。 因為類型不同,null 的類型為 object, undefined 類型為 undefined 。所以不相等
undefined === null ;
// 輸出 false。 NaN不自等
NaN == NaN ;
isNaN 函數
可以判斷是不是一個數字
// 輸出 true
isNaN(NaN);
// 輸出false
isNaN(5);
isNaN 傳入 NaN 或者其他數字類型的值判斷比較準確,除了數字類型外的其他類型值判斷不准
isNaN(undefined); // true
isNaN('3天'); // true
isNaN(null); // false
邏輯運算符
以下的符號都是邏輯運算符, 邏輯運算符的關鍵詞就是真假。其運算的結果 要麼 是 真(true) 要麼是假(false)
意義 | 運算符 | 解釋 | 舉例 |
---|---|---|---|
非 | ! | 表示 非 也可以說是 置反運算, 其結果一定一個bool值 | !true = false |
與 | && | 表示 並且 ,多個條件都為真才真,口訣: 一假則假 。 具有短路功能 | true && true = true |
或 |
邏輯運算符可以比較任意值,不過輸出結果只能為 布爾值
非表示取反的意思
//false
!true ;
// true
!false;
// true
!0
// true
!undefined
!'' // true
!'halouworld' //非空字元串取反 為 false
與
與表示有多個併列條件,只有都滿足的時候才會向下執行,否則跳過。通常和 後面講到的 IF 配合使用
使用口訣:一假則假
<script>
var a = 1, b = 2, c=3, d=4;
// a 雖然和b 相等, 但是 c和d不相等,所以結果還是不想等
if( a== b && c==d) {
console.log('都成立')
} else {
console.log('都不成立')
}
</script>
或
或表示有多個併列條件,只要其中一個滿足就會向下執行,否則跳過。通常和 後面講到的 IF 配合使用
使用口訣:一真則真
<script>
var a = 1, b = 1, c=3, d=4;
// a == b 後者 c==d 只要有個一個相同就相等, 結果輸出相等
if( a== b || c==d) {
console.log('成立')
} else {
console.log('不成立')
}
</script>
短路
短路就是 在一組 與 或者 或 當中 ,如果提前運算出了結果, 就結束了, 後面的表達式則不會被執行
- 與 1!=1 && 1=2 , 當前面的表達式 1 != 1 為假, 所以整個表達式結果為假, 後面的 1=2 則不會被執行到, 參考口訣 一假則假
- 或 11 || 12 , 當前面的表示式 1==1 為真,所以整個表示式結果為真, 後面的 1==2 則不會被執行到, 參考口訣 一真則真
賦值運算符
以下的符號都是賦值運算符, 賦值運算符的關鍵詞就是賦值。即符號右邊的值賦值給左邊
符號 | 意義 | 舉例 |
---|---|---|
= | 賦值 | a = 10 |
+= | 左右相加並賦值給左邊 | a = 10 ; b = 10 ;a +=b |
-= | 左邊減右邊並賦值給左邊 | a -= b |
*= | 左右相乘並賦值給左邊 | a *= b |
/= | 左邊除以右邊並賦值給左邊 | a /= b |
%/ | 左邊取餘右邊並賦值給左邊 | a %= b |
++ | 自增運算(自身增1) | a++ ; ++a |
-- | 自減運算 (自身減1) | a--; --a; |
賦值運算符就是將右邊的賦值給左邊
# 左邊的值賦值給右邊的變數
a = 1;
# 連續賦值
var a,b,c;
a = b = c = 1;
console.log(a);
console.log(b);
console.log(c);
+= 等舉例
// 等價於 a = a + 5;
a += 5;
表達式組合
由運算符和操作數共同組成的複雜運算表達式
其中的運算順序(優先順序)
非運算 -> 數學運算 -> 關係運算 -> 邏輯運算
舉例
// 輸出true
5 < 3 + 3;
// 輸出 true ,這種複雜的表達式在不加括弧的時候看著比較亂
3 > 2 && 8 > 3+ 4
// !13 = false , 等價於 !Boolean(13)
// 輸出 true, 小於號左邊為false, 轉成整數值 Number(false) = 0 和 右邊的運算結果 3 相比較
!13 < 6 - 3
總結
特別註意 表示式組合當中,比較複雜的表達式,一定要加上括弧,方便以後閱讀理解
請關於一下啦^_^微信公眾號