Js類型 基礎2

  • 99
  • 0
  • Js
  • 2020-01-09

運算符 ++、--

關係運算符   ==、===

邏輯運算符  && 、 || 、 ! 

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 :

https://developer.mozilla.org/en-US/docs/Glossary/Truthy

https://developer.mozilla.org/en-US/docs/Glossary/Falsy