摘要:原始表達式直接量保留字變量原始表達式表達式的最小單位表達式中的短語,解釋器會將其計算為一個結果對象和數據的初始化表達式對象直接量和數組直接量,它們和布爾直接量不同,它們不是原始表達式函數定義表達式函數直接量也不是原始表達式屬性訪問表達式語法
1 原始表達式
直接量、保留字、變量
原始表達式(primary expression):表達式的最小單位
表達式:JavaScript中的短語,JavaScript解釋器會將其計算為一個結果
2 對象和數據的初始化表達式對象直接量和數組直接量,它們和布爾直接量不同,它們不是原始表達式
3 函數定義表達式函數直接量也不是原始表達式
4 屬性訪問表達式語法:
expression . identifier
expression [ expression ]
調用表達式(invocation expression):調用或者執行函數或方法的語法表示
方法調用(method invocation):如果這個表達式是一個屬性訪問表達式,那么這個調用稱做“方法調用”
6 對象創建表達式對象創建表達式(object creation expression):創建一個對象并調用一個構造函數初始化新對象的屬性:
var obj = new Object(); //比函數調用表達式多了一個new操作符 Object();7 運算符概述 7.1 操作數的個數
一元運算符(unary operator):將一個表達式轉換為另一個復雜的表達式
二元運算符(binary operator):將兩個表達式合并成一個復雜的表達式
三元運算符(ternary operator):條件判斷運算符?
7.2 左值左值(lvalue):表達式只能出現在賦值運算符的左側
7.3 運算符優先級要注意的是,屬性訪問表達式和調用表達式的優先級非常高,當:typeof my.functions[x](y),盡管typeof是優先級最高的運算符之一,但typeof也是在兩次屬性訪問和函數調用之后執行的
8 算數表達式 8.1 “+”運算符有些時候要進行必要的轉換:
var obj = { toString: function() { return "object"; } }; console.log("hello " + obj); //hello object var obj = {}; console.log("hello " + obj); //hello [object Object] console.log(1 + null); //1 console.log(1 + undefined); //NaN8.2 一元算數運算符
+、-是一元運算符,也是二元運算符
9 關系表達式 9.1 相等和不等運算符如果兩個引用值指向同一個對象、數組或函數,則它們是相等的
9.2 比較運算符大寫的ASCⅡ字幕都“小于”小寫的ASCⅡ字幕;
加號運算符和比較運算符的行為不同,前者更偏愛字符串,如果其中一個操作數是字符串,則進行字符串連接;比較運算符則更偏愛數字,只有兩個操作數都是字符串,才會進行字符串比較
當其中一個操作數是或能轉成NaN的時候,比較運算符均返回false:
console.log("12" < NaN); //False; console.log("12" > NaN); //False;9.3 in運算符
左操作數是字符串或能夠轉換成字符串,右操作數則是對象
9.4 instanceof運算符左操作數是對象,右操作數是標識對象的類
10 邏輯表達式 10.1 邏輯與(&&)建議“&&”僅用來對真值和假值做布爾計算
10.2 邏輯或(||)最常用的方式是從一組備選表達式中選出第一個真值表達式:var body = body || document.body;
function obj(p) { p = p || {}; return p; } console.log(obj().toString()); //[oject Object] console.log(obj({ toString: function() { return "Oli"; } }).toString()); //Oli10.3 邏輯非(!)
“!”運算符首先將其操作數轉換為布爾值,然后再對布爾值求反
11 賦值表達式一次性對多個變量賦值:
var x, y, z; x=y=z=10; console.log(x+y+z); //3012 表達式計算 12.1 eval()
它使用了調用它的變量作用域環境
12.2 全局eval()直接調用eval()時,它總是在調用它的上下文作用域內執行。其他的間接調用則使用全局對象作為其上下文作用域,并且無法讀寫、定義局部變量和函數:
var geval = eval; var x = "global", y = "global"; function f() { var x = "local"; eval("x += "changed""); //直接調用eval return x; } console.log(f(), x); //localchanged global; function g() { var y = "local"; geval("y += "changed""); //間接調用eval return y; } console.log(g(), y); //local globalchanged;12.3 嚴格eval()
ECMAScript5在嚴格模式下,eval執行的代碼段可以查詢或更改局部變量,但不能在局部作用域中定義新的變量或函數;
此外,嚴格模式將“eval”列為保留字,不能用一個別名覆蓋eval()函數(運算符)
// "use strict"; function f () { eval("var x = 10"); console.log(x); } f(); //10 "use strict"; function f () { eval("var x = 10"); console.log(x); } f(); //x is not defined13 其他運算符 13.1 條件運算符(?:)
條件運算符中唯一一個三元運算符(三個操作數)
常用做法是:
var username; var name = username ? username : "Oliver"; console.log(name); //"Oliver"13.2 typeof運算符
最常用的做法是:
var value = 123; var value = "hello"; console.log((typeof value === "string") ? """ + value + """ : value); //123 //"hello"
在IE9之前的版本中,非原生可執行對象的typeof運算將返回“object”
13.3 delete運算符delete是一元操作符,它用來刪除對象屬性或者數組元素
13.4 void運算符void讓瀏覽器不必顯示這個表達式的計算結果:
hello there
以上代碼不推薦,應該綁定一個事件處理程序
13.5 逗號運算符(,)最常用于for循環
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/79023.html
摘要:在同一個塊內,不允許用重復聲明變量。中為新增了塊級作用域。自帶遍歷器的對象有數組字符串類數組對象對象的對象等和結構對象。返回一個遍歷器,使遍歷數組的鍵值對鍵名鍵值。 目錄 1.語法 2.類型、值和變量 3.表達式和運算符 4.語句 5.數組 6.對象 7.函數 8.全局屬性和方法 9.詞法作用域、作用域鏈、閉包 10.原型鏈、繼承機制 11.this的理解 12.ES5新特性 13.E...
摘要:二進制浮點數和四舍五入錯誤在使用實數時,常常只是真實值的一個近似表示。作用域分類全局函數,塊級作用域鏈變量對象用于存儲執行上下文中的變量函數聲明函數參數變量初始化階段瀏覽器截圖瀏覽器截圖代碼執行階段類和模塊 詞法結構 字符集 使用Unicode編寫 ES3 Unicode2.1+ ES5 Unicode3+ 區分大小寫 注釋 // 注釋 /* 注釋 */ 標識符和保留字 必須以字...
摘要:對象數組初始化表達式,闖關記之上文檔對象模型是針對和文檔的一個。闖關記之數組數組是值的有序集合。數組是動態的,根闖關記之語法的語法大量借鑒了及其他類語言如和的語法。 《JavaScript 闖關記》之 DOM(下) Element 類型 除了 Document 類型之外,Element 類型就要算是 Web 編程中最常用的類型了。Element 類型用于表現 XML 或 HTML 元素...
摘要:函數定義表達式。對象創建表達式。需要注意的是,大多數運算符都是由標點符號表示的,比如和。也就是說,空字符串將被當作,布爾值將被當作。對于和,則分別調用函數并取得字符串和。 表達式 表達式是由數字、運算符、數字分組符號(如括號)、自由變量和約束變量等以能求得數值的有意義排列方法所得的組合。JavaScript 表達式主要有以下幾種形式: 原始表達式:常量、變量、保留字。 對象、數組初始...
摘要:函數定義表達式。對象創建表達式。也就是說,空字符串將被當作,布爾值將被當作。如果有一個操作數是對象數值或布爾值,則調用它們的方法取得相應的字符串值,然后再應用前面關于字符串的規則。對于和,則分別調用函數并取得字符串和。 表達式 表達式是由數字、運算符、數字分組符號(如括號)、自由變量和約束變量等以能求得數值的有意義排列方法所得的組合。JavaScript 表達式主要有以下幾種形式: ...
閱讀 2964·2021-10-15 09:41
閱讀 1620·2021-09-22 15:56
閱讀 2104·2021-08-10 09:43
閱讀 3273·2019-08-30 13:56
閱讀 1778·2019-08-30 12:47
閱讀 648·2019-08-30 11:17
閱讀 2770·2019-08-30 11:09
閱讀 2193·2019-08-29 16:19