您好,登錄后才能下訂單哦!
一、js表達式
定義:表達式是指能計算出值得任何可用程序單元。 ——wiki
表達式是js一種短語,可是js解釋器用來產生一個值。 ——js《權威指南》
1.原始表達式。
常量/直接量: 3.14/ "test" 等
關鍵字: null,this,true,false 等
變量: i,k,j 等
復合表達式:原始表達式和原始表達式之間用運算符連接可以組成一個復合表達式。
例如: 10 * 20 這就是一個復合表達式
2.(數組、對象的)初始化表達式。
例如:
[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.函數表達式。
var fn = function(){};
或者:
(function(){ console.log("hello") })();
如果你不理解函數表達式后面還會有對應的介紹。
4.屬性訪問表達式。
var obj = {x:1}
我們可以通過 obj.x 或者 obj["x"]來訪問它的屬性,這一類表達式就稱之為屬性訪問表達式。
5.調用表達式。
func(); 來調用一個函數,這樣的表達式就稱之為調用表達式。
6.對象創建表達式。
例如:
new Func(1,2);我們可以傳參,如果沒有參數我們也可以new Object;創建一個空的對象這樣也是合法的。
二、js運算符(一般用于表達式之間進行一些運算)。
1.按照運算符的操作數的數量:
一元運算符: +num
二元運算符: a + b
三元運算符: c?a:b
2.按照功能區分:
賦值:x += 1 (或者-=,=等)
比較:a == b
算數: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開始,我們可以給對象設置configurable標簽,當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運算符
比如說我們創建一個函數構造器:function Foo(){}
Foo.prototype.x = 1;
我們可以用new運算符就可以創建一個對象obj
var obj = new Foo();
這樣obj.x; //1 我們就可以從它的構造器上的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無論后面的操作數是多少,返回的都是undefined。
8.運算符的優先級,也是建議大家去看一下,更有助于大家讀懂復雜的表達式。
以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。