JavaScript(四)操作符
6种表达式
原始表达是 初始化表达式 函数定义表达式
函数调用表达式 属性访问表达式 对象创建表达式
操作符
操作符的优先级
属性访问[] . > 一元操作符 > */ > +- > 比较 > 相等 > && > || > ?:;>,
操作符的结合性
右结合: 一元操作符、三目操作符、赋值
(当两个一元操作符同时存在的时候 从右向左计算)
左结合:其他的 默认的都是左结合
一元操作符 + - ++ -- !
一元加 + 不会对数值产生任何影响 只隐式调用 Number
var a = -123;
console.log(+a)
//-123
特别的对对像使用一元加的时候 需要先调用 valueOf 或 toSrring
一元减 - 与一元加类似 调用Number 之后 取相反数
位操作符
~ 按位非 取负值后减一
>> 右移 m>>n 将m转化成二进制 然后 向右移n位
<< 左移 m<<n 将m转化成二进制 然后 向左移n位
布尔操作符 && || !
&& 常被用于判断
|| 常备用于负值 也可以用于判断
小题
1.
var a = 1;
b = a + ++a;
c = a ++ + ++ a ;
//b=3
//c=6
2.
x=a?b:c?d:e?f:g; //x=(a?b:(c?d:(e?f:g))) 右结合
3.
a = -1;
b = +a;
alert(b);
//-1
4.
0 === -0;
//true
乘性操作符 * / %
*
infinity*0 -> NaN;
/
infinity/infinity -> NaN;
0/[num] -> NaN
加减操作符
+
infinity+ -infinity -> NaN
+undefined -> NaN
+ null -> 0
-
infinity-infinity -> NaN
-infinity - -infinity -> NaN
关系操作符 > < >= <=
也可以比较字符串 非数字 默认比较字符串第一位的 Ascii码
可以转化成 number 类型的 就转化成数字进行比较
小题
7>6>5
//false 这里 关系运算符是 左结合的 true>5 -> fase
相等操作符
null == undefined true
NaN != NaN true
undefined == 0 false
null == 0 false
相等操作符 里面 可能是 内定了 null == undefined 而且 null 和 undefined 在比较的时候 不进行转换 NaN 不等于任何
赋值操作符 =
右结合 除了 , 之外 优先级最低
逗号操作符
常用语赋值语句中 赋值多个
JavaScript(四)操作符的更多相关文章
- 从头开始学JavaScript (四)——操作符
原文:从头开始学JavaScript (四)--操作符 一.一元操作符 1.自增自减操作符:分为前置型和后置型: 前置型:++a;--a; 后置型:a++;a--; 例: <script typ ...
- 从头开始学JavaScript (五)——操作符(二)
原文:从头开始学JavaScript (五)--操作符(二) 一.乘性操作符 1.乘法:* 乘法操作符的一些特殊规则: 如果操作数都是数值,按照常规的乘法计算,如果乘积超过了ECMAscri ...
- 初探JavaScript(四)——作用域链和声明提前
前言:最近恰逢毕业季,千千万万的学生党开始步入社会,告别象牙塔似的学校生活.往往在人生的各个拐点的时候,情感丰富,感触颇深,各种对过去的美好的总结,对未来的展望.与此同时,也让诸多的老“园”工看完这些 ...
- Perl,Python,Ruby,Javascript 四种脚本语言比较
Perl 为了选择一个合适的脚本语言学习,今天查了不少有关Perl,Python,Ruby,Javascript的东西,可是发现各大阵营的人都在吹捧自己喜欢的语言,不过最没有争议的应该是Javascr ...
- 坑:JavaScript 中 操作符“==” 和“===” 的区别
标题:JavaScript 中 操作符"==" 和"===" 的区别 记录一些很坑的区别: 1. '' == '0' // false 0 == '' // t ...
- JavaScript中+操作符的特殊性
在JavaScript中+操作符有两个作用: (1)加法运算 (2)字符串连接 在使用+操作符进行运算时,当+操作符两边都是数值类型的时候,进行加法运算; 当+操作符两边有任意一边是字符串,则进行字符 ...
- JavaScript四种数值取整方法
一.Math.trunc() 1.定义 Math.trunc()方法去除数字的小数部分,保留整数部分. 2.语法 Math.trunc(value) 3.示例 console.log(Math.tru ...
- JavaScript 逗号操作符
让我们从一个有趣的微博开始吧. 末尾的c是优先级最低的逗号操作符.逗号操作符是操作符优先级的最后一行,并且很少有文章记录,它隐藏着它的锋芒.它可能不是JavaScript强势操作符,但是我喜欢它.它简 ...
- JavaScript剩余操作符Rest Operator
本文适合JavaScript初学者阅读 剩余操作符 之前这篇文章JavaScript展开操作符(Spread operator)介绍讲解过展开操作符.剩余操作符和展开操作符的表示方式一样,都是三个点 ...
- 细说javascript typeof操作符
细说javascript typeof操作符 typeof定义 typeof是一元运算符,用来返回操作数类型的字符串.下面是ECAMScript5.1关于typeof的标准定义: NOTE:上面表格标 ...
随机推荐
- 《RabbitMQ Tutorial》译文 第 6 章 远程过程调用(RPC)
原文来自 RabbitMQ 英文官网的教程(6.Remote procedure call - RPC),其示例代码采用了 .NET C# 语言. In the second tutorial we ...
- MySql基础总结
1.创建一个表 CREATE TABLE customers ( cust_id INT NOT NULL AUTO_INCREMENT, cust_name CHAR(50) NOT NULL , ...
- Python datatime 格式转换,插入MySQL数据库
Python datatime 格式转换,插入MySQL数据库 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-11-2 ...
- github上搜索资源
1.进入官网 点击Explore 2.点击Trending 3.资源都在这上面,可以根据语言分类 4.搜索链接 https://github.com/trending
- Freemarker页面静态化技术,activemq监听页面变动
初步理解: 架构优化: 静态页面的访问速度优于从缓存获取数据的动态页面的访问速度: Freemarker: 导包 模板:hello.ftl <!DOCTYPE html> <html ...
- 使用WebEx录制视频并转换为MP4
1.下载并安装WebEx http://www.question-defense.com/wp-content/uploads/2010/05/ateditor-version-3.0.zip 2.打 ...
- Huffman 哈夫曼编码与译码的原理剖析及C++实现
原理 我们在信息存储时,希望以最少的空间去存储最大的数据,方便数据的传输,那么该怎样做呢? 我们想到将源信息转化为01序列存储,但是这样以来又有一个问题,就是子串匹配问题,我们为了解决这个方法,想到了 ...
- OC学习12——字符串、日期、日历
前面主要学习了OC的基础知识,接下来将主要学习Foundation框架的一些常用类的常用方法.Foubdation框架是Cocoa编程.IOS编程的基础框架,包括代表字符串的NSString(代表字符 ...
- iOS 控制器的跳转、页面四个方向的跳转
指定滑动方向的跳转 CATransition *transition = [CATransition animation]; transition.duration = 0.3f; transitio ...
- MongoDB学习第七篇 --- sql和mongodb对比
一.术语和概念的对比 SQL MongoDB database database row document or BSON document column field index index ...