JavaScript 学习笔记之操作符(续)


Posted in Javascript onJanuary 14, 2015

一、乘性操作符

1、乘法:*

     乘法操作符的一些特殊规则:

如果操作数都是数值,按照常规的乘法计算,如果乘积超过了ECMAscript数值的表示范围,则返回infinity或者-infinity
如果有一个操作数是NaN,那返回结果就是NaN
如果是infinity与0相乘,返回NaN
如果infinity与非0数相乘,返回infinity或者-infinity
infinity与infinity相乘,返回infinity
如果有一个操作数不是数值,后台会先调用number()将其转化为数值,再应用上面的规则

<script type="text/javascript">

   

       alert(5 * 6);           //30

       alert(5 * NaN);         //NaN

       alert(Infinity * 0);    //NaN

       alert(Infinity * 2);    //Infinity

       alert("5" * 5);         //25

       alert(true * 10);       //10

       alert(false * 10);      //0

      

   </script>

2、除法:/

   除法操作符的一些特殊规则:

如果操作数都是数值,按照常规的除法计算,如果商超过了ECMAscript数值的表示范围,则返回infinity或者-infinity
如果有一个操作数是NaN,那返回结果就是NaN
如果是infinity被infinity除,返回NaN
如果是0被0除,返回NaN
如果是非0的有限数被0除,返回infinity或者-infinity
如果是infinity被非0的有限数除,返回infinity或者-infinity
如果有一个操作数不是数值,后台会先调用number()将其转化为数值,再应用上面的规则

  <script type="text/javascript"> 

         alert(5 / 5);           //1

         alert(5 / NaN);         //NaN

         alert(Infinity / Infinity);    //NaN

         alert(Infinity / 2);    //Infinity

         alert(5 / 0);           //Infinity

         alert(10 / true);       //10

         alert(10 / false);      //Infinity

     </script>

3、求模(余数):%

   求模操作符的一些特殊规则:

如果操作数都是数值,按照常规的除法计算,返回除得的余数
如果被除数是无穷大,除数是有限数,那返回结果就是NaN
如果被除数是有限大,除数是0,返回NaN
如果是infinity被infinity除,返回NaN
如果被除数是有限大而除数是无穷大,返回被除数
如果被除数是0,返回0
如果有一个操作数不是数值,后台会先调用number()将其转化为数值,再应用上面的规则

<script type="text/javascript">

   

       alert(26 % 5);          //1

       alert(Infinity % 3);    //NaN

       alert(3 % 0);           //NaN

       alert(5 % Infinity);    //5

       alert(0 % 10);          //0

       alert(true % 25);       //1

       alert(3 % false);       //NaN

      

   </script>

二、加性操作符

1、加法操作符:+

如果操作数中有一个是字符串:

如果两个操作数都是字符串,那么将第二个操作数拼接到第一个操作数后面。
如果只有一个操作数是字符串,那么将另一个操作数转化为字符串后再执行上述规则

<script type="text/javascript">

        var result1 = 5 + 5;     //数字加数字

        alert(result1);           //10

        var result2 = 5 + "5";   //数字加字符串

        alert(result2);           //"55"

    </script>

2、减法操作符:-

如果有一个操作数是字符串、布尔值、null或者undefined,则在后台先调用number()将其转化为数值,然后执行减法。

三、关系操作符

大于:>

小于:<

大于等于:>=

小于等于:<=

关系操作符特殊规则:

如果操作数是字符串,对比两个字符串相应的字符编码

如果操作数一个是数值,则先将另一个操作数转化为数值,再进行比较

任何数与NaN进行比较,结果都是false

四、相等操作符

1、相等和不相等:==和!=

这两个操作符都会先将操作数转换为同一类型再进行比较

转换时,相等和不相等操作符遵循如下规则:

 如果其中一个操作数的类型为 Boolean ,那么,首先将它转换为数字类型,false 转换为 0, true 将转换为 1。
如果其中一个操作数的类型是字符串,另外一个为数字类型,那么,将字符串转换为数字进行比较。
如果其中一个操作数是对象,另一个不是,则先调用操作数的valueof()方法,得到基本类型值之后再比较
比较时的特殊规则:

null 和 undefined 是相等的。
 null 和 undefined 不会转换为任何其他类型
如果任何一个操作的结果为 NaN,那么相等比较返回 false,不相等比较返回 true。注意,即使两个操作数都为 NaN,返回结果一样是 false,也就是说,NaN 不等于 NaN。
如果两个操作数都是对象,那么比较它们引用的值,如果引用同一个对象,那么,返回真,否则,返回假。
2、全等和不全等:==和===

==会将操作数转换成同一类型比较;

===不会转换类型,直接比较

例如:

var result1 = ("55" == 55);    

var result2 = ("55" === 55); 

alert(result1);//true

alert(result2); //false"55"是字符串,55是数字,类型不一样

五、条件操作符

变量=条件表达式?真值:假值

首先会对条件表达式求值,如果结果是真,则把真值赋给变量,如果为假则把假值赋给变量。

 <script type="text/javascript">

         var num1 = 10;

         var num2 = 25;

         var num3 = (num2 > num1) ? num2 : num1;

         alert(num3);   //25

     </script>

六、赋值操作符

1、简单赋值操作符:=

var num1 = 10;
num=num1+10;
2、复合赋值操作符:+=、-=、*=、/=、%=、>>=、<<=、>>>=

  <script type="text/javascript">

         var num = 5;

         alert(num);     //5

         num += 5;

         alert(num);     //10

         num *= 2;

         alert(num);     //20

         num /= 10;

         alert(num);     //2

         num -= 2;   

         alert(num);     //0

     </script>

七、逗号操作符

逗号操作符可以在一条语句中执行多个操作

用途:1、声明多个变量

var num1=1,num2=2,num3=3;
2、赋值

var num=(0,1,2,3)//num=3
在用于赋值操作时,逗号操作符总是返回最后一个表达式的值。

练习区:

  <script type="text/javascript">

         var num1 = 5;

         var num2 = 10;

         var message = "The sum of 5 and 10 is " + num1 + num2;

         alert(message);  

    </script>
<script type="text/javascript">

        alert(null == undefined);    

        alert(null === undefined);   

        alert("NaN" == NaN);       

        alert("NaN" === NaN);      

        alert(NaN == NaN);         

        alert(NaN === NaN);        

        alert(NaN != NaN);        

        alert(NaN !== NaN);         

        alert(false == 0);       

        alert(false === 0);       

        alert(true == 1);        

        alert(true === 1);     

        alert(null == 0);         

        alert(undefined == 0);    

        alert(5 == "5");          

        alert(5 === "5");                   

    </script>

以上就是本文的全部内容了,对于javascript的操作符的讲解也就到此结束了,下篇文章我们来讲解javascript语句。

Javascript 相关文章推荐
javascript中通过arguments参数伪装方法重载
Oct 08 Javascript
javascript根据时间生成m位随机数最大13位
Oct 30 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
Nov 28 Javascript
jQuery中hasClass()方法用法实例
Jan 06 Javascript
学习javascript面向对象 理解javascript原型和原型链
Jan 04 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
Mar 02 Javascript
php输出全部gb2312编码内的汉字方法
Mar 04 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
Apr 22 Javascript
vue实现文章内容过长点击阅读全文功能的实例
Dec 28 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
Aug 24 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
Sep 17 Javascript
vscode中使用npm安装babel的方法
Aug 02 Javascript
JavaScript 学习笔记之操作符
Jan 14 #Javascript
Node.js的包详细介绍
Jan 14 #Javascript
JavaScript 学习笔记之数据类型
Jan 14 #Javascript
ExpressJS入门实例
Jan 14 #Javascript
jquery加载图片时以淡入方式显示的方法
Jan 14 #Javascript
JavaScript 学习笔记之变量及其作用域
Jan 14 #Javascript
jquery简单图片切换显示效果实现方法
Jan 14 #Javascript
You might like
php分页函数
2006/07/08 PHP
php获取地址栏信息的代码
2008/10/08 PHP
PHP连接SQLServer2005 的问题解决方法
2010/07/19 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
PHP实现执行外部程序的方法详解
2017/08/17 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
Javascript计算时间差的函数分享
2011/07/04 Javascript
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
2011/10/31 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
JavaScript职责链模式概述
2016/09/17 Javascript
清除输入框内的空格
2016/12/21 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
2017/12/20 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
使用JavaScript通过前端发送电子邮件
2020/05/22 Javascript
Vue封装Axios请求和拦截器的步骤
2020/09/16 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python写入xml文件的方法
2015/05/08 Python
python获取文件扩展名的方法
2015/07/06 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
替换python字典中的key值方法
2018/07/06 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
学生干部的自我评价分享
2014/01/18 职场文书
成语的广告词
2014/03/19 职场文书
出生公证书样本
2014/04/04 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书
教师节感谢信
2015/01/22 职场文书