首頁  >  文章  >  web前端  >  javascript 核心語言 - 表達式和運算符

javascript 核心語言 - 表達式和運算符

高洛峰
高洛峰原創
2016-10-17 09:47:061199瀏覽

表達式(expression)是 JavaScript 中的一個片語(phrases),JavaScript 解釋器會將其計算(evaluate)出一個結果。程式中的常數、變數名稱、陣列存取等都是表達式

簡單表達式組合成複雜表達式最常用的方法就是使用運算子(operator)

原始表達式

是最簡單的表達式是「原始表達式」(primary expression)。是表達式的 最小單位 -—— 不再包含其他表達式。常數、直接量、關鍵字、變數都是原始表達式

1.23
"hello"
/pattern/

true
false
null
this

i
sum
undefined

物件和陣列的初始化表達式

物件和陣列的初始化表達式實際上是一個新建立的物件和數組,這些表達式有時也稱做「物件直接量」和「陣列直接量」!

[]
[1+2, 3+4]

var sparseArray = [1,,,,,5]           // 数组分割逗号之前的元素可以省略,空位默认填充 undefined
var matrix = [[1,2,3], [4,5,6], [7,8,9]]

var p = { x: 2.3, y: -1.2}
var q = {}
q.x = 2.3; q.y = -1.3

函數定義表達式

var square = function(x) { return x*x }

屬性存取表達式

// expression.identifier
// expression[expression]

var o = { x:1, y:{z:3} };
var a = [0, 4, [5, 6]];
o.x             // => 1 表达式 o 的 x 属性
o.y.z           // => 3 表达式 o.y 的属性 z
o["x"]          // => 1 对象 o 的 x 属性
a[1]            // => 4 表达式 a 中索引为 1 的元素
a[2]["1"]       // => 6 表达式 a[2] 中索引为 1 的元素
a[0].x          // => 1 表达式 a[0] 的 x 属性

/*不管使用哪种形式的属性访问表达式,在「.」和「[」 之前的表达式总是会首先计算。如果计算结果是 null 或者 undefined,表达式会抛出一个类型错误异常,因为这两个值都不能包含任意属性。如果运算结果不是对象(或者数组),JavaScript 会将其转换为对象。如果对象表达式后跟随一对方括号,则会计算方括号内的表达式的值并将它转换为字符串,不论哪种情况,如果命名的属性不存在,那么整个属性访问表达式的值就是 undefined */


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn