溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

javascript表達式和運算符詳解

發(fā)布時間:2020-10-10 03:36:02 來源:腳本之家 閱讀:258 作者:伍聲2016 欄目:web開發(fā)

一、js表達式

定義:表達式是指能計算出值得任何可用程序單元。  ——wiki

   表達式是js一種短語,可是js解釋器用來產(chǎn)生一個值。  ——js《權(quán)威指南》

1.原始表達式。

常量/直接量: 3.14/ "test" 等

關(guān)鍵字: null,this,true,false 等

變量: i,k,j 等

復(fù)合表達式:原始表達式和原始表達式之間用運算符連接可以組成一個復(fù)合表達式。

例如: 10 * 20 這就是一個復(fù)合表達式

2.(數(shù)組、對象的)初始化表達式。

例如:

[1,2]  等價于  new Array(1,2);

[1,,,2]  等價于  new Array(1,undefined,undefined,2);

{x:1,y:2} 等價于  var obj = new Object();

obj.x = 1;obj.y = 2;

3.函數(shù)表達式。

var fn = function(){};

或者:

(function(){ console.log("hello") })();

如果你不理解函數(shù)表達式后面還會有對應(yīng)的介紹。

4.屬性訪問表達式。

var obj = {x:1}

我們可以通過  obj.x 或者 obj["x"]來訪問它的屬性,這一類表達式就稱之為屬性訪問表達式。

5.調(diào)用表達式。

func();  來調(diào)用一個函數(shù),這樣的表達式就稱之為調(diào)用表達式。

6.對象創(chuàng)建表達式。

例如:

new Func(1,2);我們可以傳參,如果沒有參數(shù)我們也可以new Object;創(chuàng)建一個空的對象這樣也是合法的。

二、js運算符(一般用于表達式之間進行一些運算)。

1.按照運算符的操作數(shù)的數(shù)量:

 一元運算符: +num

 二元運算符: a + b

 三元運算符: c?a:b

2.按照功能區(qū)分:

賦值:x += 1 (或者-=,=等)

比較:a == b

算數(shù):a - b

位: a | b

邏輯: exp1 && exp2 (或與非)

字符串:“a” + “b”

特殊: delete obj.x

下面我們對特殊運算符展開來講:

條件運算符:var c = true?1:2    //c=1

逗號運算符:var val = (1,2,3)  // val = 3  從左到右依次計算,取最后的

delete運算符:就是刪除對象上的屬性。

--例如:

var obj = {x:1}
  obj.x //1
  delete obj.x
  obj.x //undefined

從IE9開始,我們可以給對象設(shè)置configurable標(biāo)簽,當(dāng)configurable:true時屬性才可以被delete掉

例:

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

3. in 運算符。

 例:window.x = 1;那我們想知道window到底有沒有x呢,我們就可以用 in

  ”x“ in window;    // true 

4. instanceof  和 typeof 我們在上一章詳細的介紹過,如果忘記了可以去看一下。

5. new運算符

 比如說我們創(chuàng)建一個函數(shù)構(gòu)造器:function Foo(){}

 Foo.prototype.x = 1;

 我們可以用new運算符就可以創(chuàng)建一個對象obj

 var obj = new Foo();

 這樣obj.x;  //1 我們就可以從它的構(gòu)造器上的prototype屬性上拿到 1

 我們可以通過 obj.hasOwnProperty("x"); //false 來判斷這個屬性到底是對象上的還是對象的原型上的

 obj._proto_拿到它的原型,obj._proto_.hasOwnProperty("x");  //true 說明是原型上的

6.this 運算符。

  this; //window(瀏覽器)
  var obj = {
  func:function(){
  return this;
 }
 }
obj.func(); // obj

this運算符也是比較特殊的這個我們后面會詳細講。

7.void運算符。

 void 0 //undefined
 void (0) //undefined

 void無論后面的操作數(shù)是多少,返回的都是undefined。

8.運算符的優(yōu)先級,也是建議大家去看一下,更有助于大家讀懂復(fù)雜的表達式。

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持億速云!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI