2017/5 JavaScript基礎4--- 表達式、運算符

表達式是指可以計算出值得任何可用程序單元。javascript

1、表達式

一、原始表達式

  1. 常量、直接量 :3.14  、‘aaa’
  2. 關鍵字  : null this true
  3. 變量 : i,j,k

二、數組、對象的初始化表達式

  1. [1,2] < ====== >new Array(1,2);
  2. [1,,,4]<======>[1, undefined ,undefined , 4 ]
  3. { x : 1 ,y : 2}< ============> var o = new Object(); o.x = 1 ; o.y = 2;

三、函數表達式

函數賦值給變量  : var fe = function(){ }java

(function(){ console.log(' hello world) ;})數組

四、屬性訪問表達式

利用 點 " . "訪問對象屬性 ,或者使用中括號 [ ]瀏覽器

var    o = { x : 1};函數

o.x     o[ ' x ' ];this

五、調用表達式

函數名 +()spa

六、對象建立表達式

new Func ( 1,2 ); 用new 建立一個含參表達式prototype

new Object;  不含參數。code

2、運算符

一、按操做數分

  • 一元運算符  +num ,字符串拼接、取負
  • 二元運算符  a+b
  • 三元運算符 c ? a: b

二、按功能分

  • 賦值運算符 : x + =1 
  • 比較 :a == b   ===
  • 算數  : a - b  + - * /
  • 位 : a | b
  • 邏輯 : exp1  && exp2
  • 字符串 : "a " + "b"  字符串拼接
  • 特殊  : delete obj.x

三、特殊運算符詳細

1) c ? a : b 

首先會判斷 c ,c 轉化爲布爾值後爲true ,則返回 a ,不然返回 b對象

var val  = true ? 1 : 2 ; // val  =1

2)逗號運算符 a,b

逗號表達式會從左到右,依次計算表達式的值,最終去最右邊的值

var val = ( 1,2,3 ) ; //val =3

3) 運算符delete

delete obj.x

  • var obj = { x :1 };
  • obj.x;   // 1
  • delete obj.x  ;  //刪除 x屬性
  • obj.x ;  // undefined

configurable

configurable 爲true 才能夠刪除對象屬性

var obj = {};

Object.defineProperty( obj ,"x" , {
configurable :false
value:1
})
delete obj.x ; //false

obj.x ; // 1

4) 運算符 in

判斷對象中是否有 key

window.x = 1;  //建立全局變量x
'x' in window ;//true

5) 運算符 instanceof ,typeof

{} instanceof Object  // true
typeof 100 === 'number'  //true

6) 運算符 new

//建立一個空函數
function Foo(){};

Foo.prototype.x =1;

var obj = new Foo() ;  //建立一個新的對象 obj
obj.x ; //1 從構造器的prototype中拿到
obj.hasOwnProperty('x') ;//false 能夠判斷屬性是對象上的,仍是原型鏈上

obj._proto_.hasOwnProperty('x') ;//true  _proto_拿到對象原型,x爲對象原型的屬性

7) 運算符this

this ; // 在全局做用域下 this指向window (瀏覽器)

var obj = {
    func :function (){
        return this;  //指向對象
    }
}

obj .func(); //obj

8) void

void 0  ;//undefined
void(0) ;//undefined
不管void後爲何值都會返回 undefined
相關文章
相關標籤/搜索