運算符 ++、--
關係運算符 ==、===
邏輯運算符 && 、 || 、 !
RHS Right-hand side、LHS Left-hand side
Statement 陳述式、Expression 表達式
Precedence 優先性、Associativity 相依性
Truthy 真值、Falsy假值
***************************************************************************
運算符
int a =1; a = a+1; a++; ++a; 顯示 : 2;
無給值
前後置 ++或-- 都一樣結果
有給值
前置 ++或-- : 先++或-- 在給值
var a = 2; var b = ++a + 2; 同等 var b = (a = a +1) + 2
後置 ++或-- : 先給值 在++或--
var a = 2; var b = a++ + 2; 同等 將 a 先給 b , var b = 2 + 2 , a = a + 1
字串
var a = 1;
var b = '2';
alert(a+ b); //先依字串為優先,將a轉為字串,所以 '1' + '2' = '12'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
關係運算符
== 寬鬆相等 比值
布林、字串若為數字,會自動轉換為數字
字串若為數字
var a = 1; var b = '1' console.log(a == b) 顯示: true //b的字串會轉為數字 1
布林若為數字
console.log( false = 0); 顯示: true //布林的false 會轉為 數字的0
console.log(false ='false'); 顯示: false //字串的'false' 會轉為 Nan,若要比要將字串的布林轉為字串數字 false = '0'
=== 嚴格相等 比值和類型
var a = 1; var b = '1' if (a == b) 顯示: 不相等,因js會比較類型
~~~~~~~~~~~
物件與非物件比對 : 物件透過包裏物件做轉換
console.log( 10 == [10]) 顯示 true,[10].0 的值
物件與物件比對 :
console.log([] == []) 顯示 false,比對為reference 位置
var a = [];
var b = a;
console.log(a ==b) 顯示 true,因a與b的值指向同[]記憶體上的位置
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
邏輯運算符
&& 且 || 或 ! 非
!true asnwer : false 講白轉相反的意思
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RHS Right-hand side 取值來自右邊變數上,ex : console.log(a); 取得右邊值做顯示
LHS Left-hand side 給於值至左邊變數上,ex : var a = 1; 將1值給於左邊a變數
ref : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Statement 陳述式 : 用於宣告指定一系列操作,不會回傳結果
example :
流程控制 : break {}、if else
宣告 : var 、let、const
function a () {}
for( var i = 0; i< 1; i ++) {}
var a;
{
const a = ''
}
Expression 表達式 : 透過符號或運算符號 且會回傳一個結
example :
3 + 1
a = '1';
var b = function () {}
var c = { //物件設定值
d : 'test'
}
ref:https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Statements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Precedence 優先性 : 決定優先高運算子 > 低運算子 ex : * > +
Associativity 相依性 : 決定運算方向 ex: var a= b+1 -2 , 由左至右,先+在-
ref : https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Truthy 真值、Falsy假值
在於布林判斷式裡,強制轉型有值,非 false、0、""、null、undefined、NaN,則為truthy
ref :