叮咚! 村長的補課時間!今天來說明運算的那些事!
1+2
"1+2"
上面兩個咒語的差別在哪裡?
建立 2 個文字圖層,在 Source Text 分別使用上面兩個咒語,結果如下:
1+2 是運算,而用 "" 引號中為字串 (字串為顯示""內的字符,之後的篇章再做介紹)
提到運算,就會有運算元、運算子。
1+2
意思就是:運算元(1) 運算子(+) 運算元(2)
在表達式中做運算需要宣告變數,不僅可以讓做的事情更多,也比較不容易產生錯誤,那如何宣告變數呢?
宣告一個只作用在當前區塊的變數,初始值可選擇性的設定。
宣告一個全域性變數,同時可以非強制性地賦予一初始值。
let 可以宣告只能在目前區塊、階段或表達式中作用的變數。而 var 則是定義了一個全域變數,或是在整個 function 而不管該區塊範圍。
一個賦值運算子將基於其右方的運算元的值賦予其左方的運算元。
最簡單的賦值運算子是等於(=),它將賦予左方運算元與右方運算元相同之值。 也就是,x = y 會把 y 的值賦予給 x。
基礎類型
類型 簡化表達式 意義
//賦值
var a = 10;
a
//加法賦值,意思為 a = a + 15
var a = 10;
a += 15
//減法賦值,意思為 a = a - 15
var a = 10;
a -= 15
//乘法賦值,意思為 a = a * 15
var a = 10;
a *= 15
//除法賦值,意思為 a = a / 10
var a = 10;
a /= 10
比較運算元並基於比較的結果回傳邏輯值。
運算元可以是數字,字串,邏輯,或物件的值。
//等於 (==),比較運算元的兩邊為相同型態
var a = 10;
if ( 10 == a ){
true
}
//等於 (==),比較運算元的兩邊為不同型態,""引號內型態為字串
var a = 10;
if ( "10" == a ){
true
}
//不等於 (!=),比較運算元的兩邊為相同型態
var a = 10;
var b = a-5;
if ( a != b ){
true
}
//不等於 (!=),比較運算元的兩邊為不同型態,""引號內型態為字串
var a = 10;
var b = a-5;
if ( "a" != b ){
true
}
== 與 === 的差別
===(嚴格相等) 比較兩個值,而被比較的兩個值都不會轉換成其他型別。如果值是不同型別,就會被視為不相等
//嚴格等於 (===)
var a = 10;
if ( 10 === a ){
true
}
//嚴格等於 (===),因比較運算元的兩邊為不同型態,""引號內型態為字串
var a = 10;
if ( "10" === a ){
true;
}
else{
false
}
備註: => 不是運算子,是 箭頭函式。
以數值(文字或變數也可以)作為其運算元,並回傳單一數值。
最常見的算術運算元是 加法 (+),減法 (-), 乘法 (*),及除法 (/)。
除了標準的算術運算子外 (+, -, * /),下面再舉例幾種
//11
var a = 10;
++ a
//10
var a = 10;
a ++
//9
var a = 10;
-- a
//10
var a = 10;
a --
//-10
var a = 10;
- a
//10
var a = "10";
+ a
//100
var a = 10;
a**2
通常被用於布林(邏輯)值; 使用於布林(邏輯)值時,它們會回傳布林型態的值。
然而,&& 和 || 運算子實際上是回傳兩指定運算元之一,因此用於非布林型態值時,它可能會回傳一個非布林型態的值。
// && 兩邊都是true,回傳 true
var a = 10;
var b = 30;
if ( a == 10 && b == 30 ){
true;
}else{
false
}
// && 一邊為 true,一邊為 false,回傳 false
var a = 10;
var b = 30;
if ( a == 10 && b == 20 ){
true;
}else{
false
}
// || 一邊為 true,就會回傳 true
var a = 10;
var b = 30;
if ( a == 10 || b == 20 ){
true;
}else{
false
}
//只要 true 時,就回傳 false
var a = 10;
var b = 30;
if ( ! ( a == 10 && b == 30) ){
true;
}else{
false
}
今天的筆記就到這邊,如果還有學到新東西會持續更新!
喜歡的話可以點喜歡!也可以分享出去招募更多勇者!
怕忘記的話也可以點收藏!熱烈歡迎留言交流互動!
以下是
合作請
私訊 Instagram
或寄信至 x.fei.4044@gmail.com