你的位置:首页 > Java教程

[Java教程]javascript 核心语言笔记 4


表达式(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 */