对象创建表达式(object creation expression)创建一个对象并调用一个函数(构造函数)来初始化对象的属性。对象创建表达式和函数调用表达式非常类似,只是对象创建表达式之前多了一个关键字new:
new Object()
new Point(2,3)
如果对象创建表达式不需要传入任何参数给构造函数的话,那么这对圆括号是可以省略掉的,更多构造函数的细节将在9章说明
new Object
new Point
7.运算符概述
javascript中的运算符用于算表表达式, 比较表达式, 逻辑表达式 ,赋值表达式等
需要注意的是大多运算符都是标点符号来表示的,比如delete和instanceof.无论是关键字运算符还是符号运算符,所表示的运算符一样都是正规运算符,他们的语法都非常言简意赅。
下标运算符的优先级来排序的,前边的运算符优先级高于后边的运算符优先级。被水平华丰隔开的运算符具有不同的优先级。
A表示运算符的结合性。
L从左至右或者R(从右至左)
标题N的列表表示操作数的个数。
类型表示期望的操作数的类型,以及运算符的结果类型(在"→"符号之后)
运算符
操作
A
N
类型
L *= /= %= += -= &=
++
前/后增量
R
1
lval→num
--
前后减量
R
1
lval→num
-
求反
R
1
num→num
+
转换为数字
R
1
num→num
~
按位求反
R
1
int→int
!
逻辑非
R
1
bool→bool
delete
删除属性
R
1
lval→bool
typeof
检测操作类型
R
1
any→Str
void
返回undefined值
R
1
any→undef
* 、/、%
乘 除 求余
L
2
num,num→num
+、-
加,减
L
2
num,num→num
+
字符串连接
L
2
str,str→str
<<
左移位
L
2
int,int→int
>>
右移位
L
2
int,int→int
>>>
无符号右移
<,<=,>,>=
比较数字顺序
L
2
num,num→bool
<,<=,>,>=
比较在字母中的顺序
L
2
str,str→bool
instanceof
测试对象类
L
2
obj,func→bool
in
测试属性是否存在
L
2
str,obj→bool
==
判断相等
L
2
any,any→bool
!=
判断不等
L
2
any,any→bool
===
判断恒等
L
2
any,any→bool
!==
判断非恒等
L
2
any,any→bool
&
按位与
L
2
int,int→int
^
按位异或
L
2
int,int→int
|
按位或
L
2
int,int→int
&&
逻辑与
L
2
any,any→any
||
逻辑或
L
2
any,any→any
?:
条件运算符
R
3
bool,any,any→any
=
变量赋值或对象属性赋值
R
2
lval,any→any