JavaScript コア言語 - 式と演算子

高洛峰
高洛峰オリジナル
2016-10-17 09:47:061228ブラウズ

式は 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 */

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。