표현식은 JavaScript의 구문이며 JavaScript 인터프리터는 이를 평가하여 결과를 생성합니다. 프로그램 내 상수, 변수명, 배열접속 등은 모두 표현식
간단한 표현식을 복잡한 표현식으로 결합하는 가장 일반적인 방법은 연산자(연산자)를 사용하는 것
원래 표현식
은 가장 간단한 표현이며 "기본 표현"입니다. 표현의 최소 단위입니다 —— 다른 표현은 포함되지 않습니다. 상수, 리터럴, 키워드, 변수는 모두 원시 표현식
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 */