表达式(expression)是 JavaScript 中的一个短语(phrases),JavaScript 解释器会将其计算(evaluate)出一个结果。程序中的常量、变量名、数组访问等都是表达式
简单表达式组合成复杂表达式最常用的方法就是使用运算符(operator)
原始表达式
是最简单的表达式是「原始表达式」(primary expression)。是表达式的 最小单位 ———— 不再包含其他表达式。常量、直接量、关键字、变量都是原始表达式
1 1.23 2 "hello" 3 /pattern/ 4 5 true 6 false 7 null 8 this 9 10 i11 sum12 undefined
对象和数组的初始化表达式
对象和数组的初始化表达式实际上是一个新创建的对象和数组,这些表达式有时也称做「对象直接量」和「数组直接量」!
1 2 [] 3 [1+2, 3+4] 4 5 var sparseArray = [1,,,,,5] // 数组分割逗号之前的元素可以省略,空位默认填充 undefined 6 var matrix = [[1,2,3], [4,5,6], [7,8,9]] 7 8 var p = { x: 2.3, y: -1.2} 9 var q = {}10 q.x = 2.3; q.y = -1.3
函数定义表达式
1 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 的属性 zo["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 */
原标题:javascript 核心语言笔记 4
关键词:JavaScript