第四章:Javascript表达式和运算符

表达式是javascript中的一个短语,javascript解释器会将其计算出一个结果。程序中常用量是最简单的一类表达式就是变量。变量名也是一种简单的表达式,它的值就是赋值给变量的值。
复杂的表达式是由简单的表达式组成的。比如数组访问表达式是由一个表示数组的表达式,方括号、一个整数表达式构成。它们所组成新的表达式运算结果是该数组特定位置的元素值。同样的函

数调用表达式由一个表示函数对象的表达式和0个多个参数表达式构成。将简单表达式组成复杂表达式最常用的方法就是运算符。

本章(本文)将讲解所有javascript运算符。同时也讲解不涉及运算符的表达式(比如访问数组元素和函数调用),其语法和编程风格和c语言都很相似。

1.元素表达式

最简单的表达式是“原始表达式”,原始表达式是表达式的最小的单位--它们不包含其他表达式。javascript中的原始表达式包含常量或直接量。关键字和变量。
直接量是直接在程序中出现的常数值。它们看起来像:

           1.23 //数字直接量
            "hello" //字符串直接量
            /pattern/ //正则表达式直接量

javascript中的一些保留字构成了原始表达式

            true //布尔值:真
             false //假
             null //返回一个值:空
             this //返回"当前"对象

通过第三章的学习,和其它关键字不同,this并不是一个常量,他在程序的不同地方返回的值也不相同。this关键字经常在面向对象编程中出现。this返回方格方法的对象。
最后,第三种原始表达式是变量

    i //返回变量i的值
    sum //返回sum的值
    undefined //是全局变量,和null不同,它不是一个关键字

2.对象和数组的初始化表达式。

对象和数组初始化实际上是新创建的对象和数组,这些初始化的表达式有时候叫做“对象直接量”和“数组直接量”。然而和布尔直接量不同,他们不是原始表达式,因为他们所包含的成员或者元素都子表达式。

数组的初始化表达式语法非常简单,我们以下开始

数组的初始化表达式是通过一对方括号和其内由逗号隔开的列表构成的,初始化结果是一个新创建的数组。数组的元素是逗号分隔表达式的值。

[] //一个空数组;[]内留空即表示该数组没有任何元素
[1+2,3+4] //有两个元素的数组,第一个3,第二个是7

数组初始化表达式中的元素初始化表达式可以是数组初始化表达式。也就是说表达式是可以嵌套的

var mat = [[1,2,3],[4,5,6],[7,8,9]];

数组直接量中列表之间的元素可以省略,空位就会填充undefined.例如下面:

var a=[1,,,,5]

其中4个元素是undefined.数组直接量的结尾处留下逗号,这时不会创建一个新的值为undefined的元素。

对象初始化表达式和数组初始化表达式非常相似,只是方括号被花括号代替。并每个字表达式包含一个属性名和非冒号作为前缀。

var p = {x: 2.1,y: -3} //一个拥有两个属性成员的对象
            var q = {}; //空对象
            q.x=2.1;q.y=-3;  //q的属性成员和p的一样

对象直接量也可以嵌套,比如

var anh = {left:{x:2,y:3},
                  right:{x:4,y:5}}

javascript在计算对象初始化表达式的值时候,对象表达式都会各自计算一次,并且他们不必包含常数值:它们可以是任意javascript表达式。同样,对象直接量中属性的名称可以是字符串而不是标识符。(在在那行只能使用保留字或一些非法标识符作为属性名的时候非常有用)

            var side = 1;
            var square = {"left":{x:p.x,y:p.y},
            ‘right‘:{x:p.x+side,y:p.y+side}}

第6 7章还会再次讨论对象和数组的初始化表达式。

3.函数表达式

(未完待续)

时间: 2024-10-05 09:51:06

第四章:Javascript表达式和运算符的相关文章

第 4 章(表达式和运算符)(4.1~ )

表达式是JS中的一个短语,JS 解释器会将其计算出一个结果.程序中的常量是最简单的一类表达式.变量名也是一种简单的表达式,它的值就是赋值给变量的值.复杂表达式是由最简单表达式组成的. 将简单表达式组合成复杂表达式最常用的方法就是使用运算符. 4.1 原始表达式 最简单的表达式是"原始表达式".原始表达式是表达式最小单位 ---- 它们不再包含其他表达式.JS 中的原始表达式包含常量或直接量.关键字和变量. 直接量是直接在程序中国出现的常数值: 1.23 // 数字直接量 "h

JavaScript权威指南第04章 表达式和运算符

www.qdmm.com/BookReader/1845423,31051137.aspx www.qdmm.com/BookReader/1845423,31073665.aspx www.qdmm.com/BookReader/1845423,31088923.aspx www.qdmm.com/BookReader/1845423,31104070.aspx www.qdmm.com/BookReader/1845423,31114804.aspx www.qdmm.com/BookRea

JavaScript学习笔记【2】表达式和运算符、语句、对象

笔记来自<JavaScript权威指南(第六版)> 包含的内容: 表达式和运算符 语句 对象 表达式和运算符 数组直接量中的列表逗号之间的元素可以省略,这时省略的空位会填充值undefined.元素列表末尾可以留下单个逗号,这时并不会创建一个新的值为undefined元素. 属性访问表达式,.identifier的写法只适用于要访问的属性名称是合法的标识符,并且需要知道要访问的属性的名字.如果属性名称是一个保留字或者包含空格和标识符,或是一个数字(对于数组来说),则必须使用方括号的写法.当属性

JavaScript 精粹 基础 进阶(2)表达式和运算符

转载请注明出处 原文连接 http://blog.huanghanlian.com/article/5b698e88b8ea642ea9213f4a 表达式和运算符 JavaScript 表达式 表达式是指能计算出值得任何可用程序单元.--Wiki 表达式是一种JS短语,可使JS解释器用来产生一个值.--<JS权威指南> JavaScript 运算符 三元运算符 c ? a : b var val = true ? 1 : 2; // val = 1 //val值为true就会返回冒号前面的值

第八章 表达式和运算符

表达式和运算符 表达式字面量 整数字面量实数字面量字符字面量字符串字面量 求值顺序 优先级结合性 简单算术运算符求余运算符关系比较运算符和相等比较运算符递增运算符和递减运算符条件逻辑运算符逻辑运算符移位运算符赋值运算符 表达式和运算符 表达式 本章将定义表达式,并描述C#提供的运算符. 运算符是一个符号,它表示返回单个结果的操作.操作数(operand)指作为运算符输入的数据元素.一个运算符会: 将操作数作为输入 执行某个操作 基于该操作返回一个值 表达式是运算符和操作数的字符串.可以作为操作数

python学习笔记表达式和运算符(一)

表达式和运算符 什么是表达式? 1+2*3 就是一个表达式,这里的加号和乘号叫做运算符,1.2.3叫做操作数.1+2*3 经过计算后得到的结果是7,就1+2*3 = 7.我们可以将计算结果保存在一个变量里,ret = 1-2*3 . 所以表达式就是由操作数和运算符组成的一句代码或语句,表达式可以求值,可以放在"="的右边,用来给变量赋值. 算术运算符 : + - * / //(取整除) %(取余) ** >>> 2+3 >>> 3-2 >>

JS学习第六天----表达式和运算符

表达式和运算符 1.如果不清楚运算符的优先级,最简单的办法就是使用括号来明确表明计算顺,赋值操作的优先级很低,几乎自后才被执行 2.如果"+"运算符表达式中一个是字符串,而另一个不是,则另一个会被自动转换为字符串. 如果加号运算符中一个运算数为对象,则这个对象会被转换为可以进行加法运算的数字或可以进行连接运算的字符处澳门,这一转换是通过调用该对象的valueof()或toString()方法来实现的. 3.如果"-"运算符的运算数字不是数字,那么系统会自动把它们转换

第二章:数据类型和运算符

第二章:数据类型和运算符 计算机中的进制 **标识符 总的命名规则:见名知意.如果有多个单词组成,首单词小写,其余单词的首字母大写(驼峰命名法).1.首字母只能是字母,下划线和$2.其余字母可以字母,下划线,$和数字3.不能使用预留关键字4.严格区分大小写 数据类型*** 基本数据类型 整型 byte(1个字节) short(2个字节) int(4个字节) long(8个字节) 浮点型 float(4个字节) double(8个字节) 字符型 char(2个字节)采用Unicode码 布尔型 b

第二章 变量,数据类型和运算符

第二章 &变量,数据类型和运算符 英文新识: double 双精度浮点 string  字符串 character  字母 integer  整数 Scanner  扫描仪 score  分数         name  名字     boolean  布尔   true  真          false  假 语法新知: double score =98.5; //声明双精度浮点型变量score存储分数 String name="张大侠";        //声明字符串型变