表达式
表达式分为
- 原始表达式
常量/直接量: 3.14 “test” /\d+/ 等
关键字: null,this,true,false 等
变量: i,k,undefined 等 - (数组、对象的)初始化表达式
[1,2] 等价于 new Array(1,2);
[1,,,2] 等价于 new Array(1,undefined,undefined,2);
{x:1,y:2} 等价于 var obj = new Object();
obj.x = 1;obj.y = 2; - 函数表达式
var fn = function(){};或者 var fn =()=>{} - 属性访问表达式
a[“b”]等同于a.b, - 调用表达式
func(); 来调用一个函数,这样的表达式就称之为调用表达式。 - 对象创建表达式
new Func(1,2);我们可以传参,如果没有参数我们也可以new Object;创建一个空的对象这样也是合法的。
运算符
按个数区分
- 一元运算符: +num
- 二元运算符: a + b
- 三元运算符: c?a:b
运算符大全
这里提一下delete方法的副作用,此方法是直接删除对象的属性。若要删除属性可以把属性赋值undefined并返回。
var a = {a:1}
delete a.a
console.log(a)//{}
++a ,–a,+=,-=等等都会直接赋值,尽量避免这些副作用。
==和===都是比较相等,===是更为严格的相等。详情看这篇博客最后的比较图。
in运算符
判断对象是否有某个属性.
var data = [7,8,9]
"0" in data //true
3 in data //false
instanceof 运算符
判断左操作数的对象类型,所有对象都是object实例。
var d = new Data();
d instanceof Data //true
d instanceof Number //false
逻辑表达式
&&,& 第一个和第二个都为true返回true
||,| 只要有一个真就返回真,全假返回假
eval()
eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。如果参数中没有合法的表达式和语句,则抛出 SyntaxError 异常。如果非法调用 eval(),则抛出 EvalError 异常。如果传递给 eval() 的 Javascript 代码生成了一个异常,eval() 将把该异常传递给调用者。虽然 eval() 的功能非常强大,但在实际使用中用到它的情况并不多。
typeof
返回参数类型
void
返回undefined
,运算符
var a,b,c
等同于
var a
var b
var c