未加星标

javascript笔记--(第五章)运算符 javascript 运算符

字体大小 | |
[前端(javascript) 所属分类 前端(javascript) | 发布者 店小二04 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏
表达式
表达式是ECMAScript中的一个“短语”,解释器会通过计算把它转换成一个值。最简单的表达式是字面量或者变量名
function(n) {return x+y;} //函数字面量、函数表达式
box //变量
一元运算符
<script type="text/javascript">
var box = '89'; box++;
console.log(box); //90,数值字符串自动转换成数值
var box = 'ab'; box++;
console.log(box); //NaN,字符串包含非数值转成NaN
var box = false; box++;
console.log(box); //1,false转成数值是0,累加就是1
var box = 2.3; box++;
console.log(box); //3.3,直接加1
var box = {
toString : function() {
return 1;
}
};
box++;
console.log(box); //2,不设置toString或valueOf即为NaN
</script>
<script type="text/javascript">
var box = '89'; box=+box;
console.log(box); //89,数值字符串自动转换成数值
var box = 'ab'; box=+box;
console.log(box); //NaN,字符串包含非数值转成NaN
var box = false; box=+box;
console.log(box); //0,false转成数值是0
var box = {
toString : function() {
return 1;
}
};
box=+box;
console.log(box); //1,不设置toString或valueOf即为NaN
</script>
加法和减法运算符一般用于算术运算,也可像上面进行类型转换。
算术运算符
ECMAScript定义了5个算术运算符,加减乘除求模(取余)。如果在算术运算的值不是数值,那么后台会先使用Number()转型函数将其转换为数值(隐式转换)。
减法:
var box = 1 - NaN; //NaN,只要有一个NaN就为NaN
var box = Infinity - Infinity; //NaN
var box = -Infinity - -Infinity; //NaN
var box = Infinity - -Infinity; //Infinity
var box = -Infinity - Infinity; //-Infinity
var box = 100 - true; //99,true转成数值为1
var box = 100 - ''; //100,''转成了0
乘法:
var box = 100 * NaN; //NaN,只要有一个NaN即为NaN
var box = Infinity * Infinity; //Infinity
var box = -Infinity * Infinity ; //-Infinity
var box = -Infinity * -Infinity ; //Infinity
除法:
var box = Infinity % Infinity; //NaN
var box = -Infinity % Infinity ; //NaN
var box = -Infinity % -Infinity; //NaN
var box = 100 % 0; //0
var box = 100 % ''; //NaN
var box = 100 % null; //NaN
关系运算符
和其他运算符一样,当关系运算符操作非数值时要遵循一下规则:
1.两个操作数都是数值,则数值比较;
2.两个操作数都是字符串,则比较两个字符串对应的字符编码值;
3.两个操作数有一个是数值,则将另一个转换为数值,再进行数值比较;
4.两个操作数有一个是对象,则先调用valueOf()方法或toString()方法,再用结果比较;
相等和不等的比较:
两个操作数都是对象,则比较他们是否是同一个对象,如果都指向同一个对象,则返回true,否则返回false
在全等和全不等的判断上,比如值和类型都相等,才返回true,否则返回false
javascript笔记--(第五章)运算符 javascript 运算符
注意:null在进行等于或者全等比较时,并不会先把值用Number()转换为0
逻辑运算符
有三个逻辑运算符:逻辑与(AND)、逻辑或(OR)、逻辑非(NOT)。
逻辑与&&: 如果两边的操作数有一个操作数不是布尔值的情况下,与运算就不一定返回布尔值,此时,遵循已下规则:
1.第一个操作数是对象,则返回第二个操作数;2.第二个操作数是对象,则第一个操作数返回true,才返回第二个操作数,否则返回false;3.有一个操作数是null,则返回null;4.有一个操作数是undefined,则返回undefined。 总结上面几点就是:与运算符在运算时,如果第一个数在转换成布尔值的情况下是false则返回第一个操作数(原值,不一定是布尔值),否则返回第二个操作数
逻辑或||: 如果两边的操作数有一个操作数不是布尔值的情况下,逻辑与运算就不一定返回布尔值,此时,遵循已下规则:
1.第一个操作数是对象,则返回第一个操作数;2.第一个操作数的求值结果为false,则返回第二个操作数;3.两个操作数都是对象,则返回第一个操作数;4.两个操作数都是null,则返回null;5.两个操作数都是NaN,则返回NaN;6.两个操作数都是undefined,则返回undefined; 总结上面几点就是:或运算符在运算时,如果第一个数在转换成布尔值的情况下是true则返回第一个操作数(原值,不一定是布尔值),否则返回第二个操作数
逻辑非!: 逻辑非运算符可以用于任何值。无论这个值是什么数据类型,这个运算符都会返回一个布尔值。它的流程是:先将这个值转换成布尔值,然后取反。
var box = !(5 > 4); //false
var box = !{}; //false
var box = !''; //true
var box = !0; //true
var box = !null; //true
var box = !NaN; //true
var box = !undefined; //true

本文前端(javascript)相关术语:javascript是什么意思 javascript下载 javascript权威指南 javascript基础教程 javascript 正则表达式 javascript设计模式 javascript高级程序设计 精通javascript javascript教程

主题: ECMAScript数据变量
分页:12
转载请注明
本文标题:javascript笔记--(第五章)运算符 javascript 运算符
本站链接:http://www.codesec.net/view/531074.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 前端(javascript) | 评论(0) | 阅读(49)