1.原始表达式
最简单的表达式是“原始表达式”。原始表达式是表达式的最小单位——它们不再包含其他表达式JavaScript中的原始表达式包含常量或直接量、关键字和变量
例如:
1.23//数字直接量
“hello”//字符串直接量
true //保留字
undefined //变量
2.对象和数组的初始化表达式
对象和数组初始化表达式实际上是一个新创建的对象和数组
数组初始化表达式:
var p=[1,3,5,6,8];
var p=[[1,2,3],[4,5,6],[7,8,9]];
var p=[1,,,,5];这里中间的逗号隔开的空处会自动填充undeined,如果是在元素列表结尾处留下单个逗号,这时不会创建一个新的值为undefined的元素
对象的初始化表达
与数组的十分类似,中括号换成了大括号,属性和值之间用冒号
var p={x:2.3,y:-1.2};
var p={ upperLeft:{x:2,y:5},
lowerRight:{x:4,y:5}
};
3.函数定义表达式
函数定义一个JavaScript函数。表达式的值是这个新定义的函数。从某种意义上讲,函数定义表达式可称为函数直接量。
一个函数定义表达式包含关键字function,紧随其后是一对圆括号,括号内是参数列表,再过来是函数体
var square=function(x){ return x*x;}
4.属性访问表达式
属性访问表达式运算得到一个对象属性或一个数组元素的值。
express.indentifier //第一个局限于知道属性名而且属性名不能是保留字
expression[expression]
5.调用表达式
Math.max(x,y,z);
6.对象创建表达式
new Object();
7.javaScript中的表达式概述:
2.操作数的位数
操作一个对象的是一元运算符,比如:-
操作2个对象的是二元运算符,比如:*
操作3个对象的是三元运算符,比如:?:
3.左值
左值是一个古老的属于,它是指“表达式只能出现在赋值运算符的左侧”。在JavaScript中,变量、对象属性和数组元素均是左值。
4.运算符的副作用
一些表达式具有副作用,前后的表达式运算会互相影响。
赋值表达式是最明显的一个例子。
delete运算符同样具有副作用:删除一个属性就像给这个属性赋值undefined
5.运算符优先级。
前面的运算符表中是按照优先级从高到低排列的,同一行的优先级相同。
6.运算符具有结合性
7.运算顺序,跟数学顺序差不多
8.运算符
我这里一些我没怎么接触过的
in 运算符
in运算符希望它左侧是一个字符串或者可以转换为自动符串,右侧是一个对象
instanceof运算符
instanceof希望左操作数十一个对象,右操作数标识对象的类
void操作符
void是一元操作符,它出现在操作数之前,操作数可以是任意类型。
作用是忽略操作数的值,在操作数具有副作用的时候使用void让程序更有语义
delete运算符
delete是医院操作符,它用来删除对象属性或者数组元素。有副作用
var o={x:1,y:2};
delete o.x;
"x" in o //得到的是false了
typeof运算符
返回操作数类型的表达式
条件运算符:
?:
表达式计算 eval
JavaScript同样可以解释运行由JavaScript源代码组成的字符串,并且产生一个值。JavaScript通过全局函数eval()来完成这个工作。
eval("3+2") //=>5
动态判断源代码中的字符串。
eval()的基础用法
eval()是一个函数,经过各种限定当成运算符使用。
eval()只有一个参数。如果传入的参数不是字符串,它直接返回这个参数。如果参数时字符串,它会把字符串当成JavaScript代码进行编译,编译失败则抛出语法异常,编译成功则开始执行这段代码,并返回字符串的最后一个表达式或者语句的值。
关于eval()最重要的是,它调用了他的变量作用域环境。也就是说,它查找变量的值和定义新变量和函数的操作和局部作用域中的代码完全一样。如果一个函数定义了一个局部变量x,然后调用eval("x"),它会返回局部变量的值
原文:http://www.cnblogs.com/aigeileshei/p/5451041.html