《JavaScript深入浅出》第二章学习笔记

第二章:表达式和运算符 

目录

2-1 [JavaScript]表达式

2-2 [JavaScript]运算符


2-1 [JavaScript]表达式

原始表达式:常量、直接量、关键字、变量

原始表达式之间可以通过运算符复合成复合表达式,eg:10*20就是一个复合表达式。

数组初始化表达式:[1,2] 相当于 new Array(1,2); 还有数组中存在空的现象,如图:

对象初始化表达式:{x:1,y:2} 相当于var o = new Object();o.x = 1;o.y = 2;下图可参考

函数表达式:①将匿名函数赋给一个变量var fe = function(){};

②用()将函数括起来即可直接调用:(function(){console.log('hello world');})();

属性访问表达式:var o = {x:1}; 访问o的x属性有两种方式

①o.x  ②o['x']

调用表达式:即调用一个函数,函数名后加上一个()即可,eg:fun()

对象创建表达式:使用new来创建一个函数(构造器),new Fun(1,2);  如果不需要传参的话,可以直接省略后面括号,即new Fun,表示创建一个空的对象;

综上:表达式分为六种:原始表达式、初始化表达式、函数表达式、属性访问表达式、调用表达式、对象创建表达式。

2-2 [JavaScript]运算符

按照数量区分:通过表达式之间运算符的数量可以分为一元、二元、三元运算符。

一元一般用于改变赋值,如+num。二元用于计算居多,如a+b。三元用于判断居多,如c?a:b。

按照功能区分:赋值运算符(x += 1),比较运算符(a == b),算术运算符(a - b),位运算符(a | b),逻辑运算符(aa && bb),字符串运算符,即字符串拼接("a" + "b"),特殊运算符(delete obj.x)。

特殊运算符:①逗号,运算符:var val = (1,2,3); 逗号表达式会从左至右依次计算表达式的值,故此处val的值最后会为最右边的值3。

delete运算符:删除对象上的属性,不是所有的属性都可以通过delete进行删除。使用Object.defineProperty方法可以设置一个configurable标签,当configurable为true时该属性才能被删除。如图:

 ③in运算符:判断一个属性是否存在/属于某个对象。eg:aaa.x = 1; 'x' in aaa;输出结果为true。

④instanceof、typeof运算符,上一章已经介绍,略。

⑤new运算符,较为复杂,举例如下:

 可以得出结论,通过new构造出来的实例(obj),实例可以获得原函数的属性,但该属性始终属于原函数,通过原型链查找可以找到x属性为实例原型链上的一个属性,若原型链过长,就需要继续判断或采取其他方法了。

this运算符:在全局作用域下,如在浏览器中,全局下this指向为window。

通过obj.func.apply可以指定this,this在不同的情况下有不同的值。

 ⑦运算符void:一元运算符,较为少见。不论void后的操作数为何值,均返回undefined。

如void 0;  //undefined   或  void (0);  //undefined

运算符优先级

【注明】学习笔记来自慕课网免费的学习视频:《JavaScript深入浅出》——Bosn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值