式は JavaScript の語句であり、JavaScript インタプリタはそれを評価して結果を生成します。プログラム内の定数、変数名、配列アクセスなどはすべて式です。単純な式を結合して複雑な式にする最も一般的な方法は、元の式が最も単純な式です。表現の最小単位です ———— それ以外の表現は含まれません。定数、リテラル、キーワード、変数はすべてプリミティブ式です
1.23 "hello" /pattern/ true false null this i sum undefined
オブジェクトと配列の初期化式
オブジェクトと配列の初期化式は、実際には新しく作成されたオブジェクトと配列です。これらの式は、Make "オブジェクト リテラル" および " と呼ばれることもあります。配列リテラル"!
[] [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 */