第三章 基本概念(二)操作符(二)

乘性操作符

  • 在JS里面定义了3个乘性操作符,乘法,除法和求模。这些操作数在非数值的情况下会执行自动的类型转换。
  • 如果参与乘法计算的某个操作数不是数值,后台有优先使用Number()转型函数将其转换为数值。也就是说空字符串将被当做0,布尔true将被当做1

乘法

乘法操作符由一个星号(*)表示,用于计算两个数值的乘积。
例如:

var result = 34*56;

在处理特殊值得情况下,乘性操作符遵循下面的规则:

  • 如果操作数都是数值,执行常规的乘法计算,即两个正数或者两个负数相乘的结果还是正数,而如果只有一个操作数有符号,那么结果就是负数。如果乘积超过了JS的表示范围则返回Infinity或者-Infinity

除法

除法操作符由一个(/)表示,
例如:

var result = 66/11;

与乘法类似,除法操作符遵循下面的规则:

  • 如果操作数是数值,即两个正数或两个负数相除的结果还是正数,而如果只有一个操作数有符号,那么结果就是负数。如果超过了数值的表示范围。即返回Infinity或者-
    Infinity
  • 如果有一个操作数是NaN,则结果是NaN
  • 如果是Infinity被Infinity除,则结果是NaN
  • 如果是0/0则结果是NaN
  • 如果是非0的有限数被0去除,则结果就是Infinity或者-Infinity取决于无穷的符号
  • 如果是Infinity被任何非0数值除,结果就是Infinity或者-Infinity取决于无穷的符号
  • 如果一个操作数不是数值,则后台调用Number()将其转化为数值

求模

求模(余数)操作符由一个百分号(%)表示,用法:

var result = 26%5 ; // 等于1
与另外两个乘性操作符类似,求模运算符会遵循下面的规则:

  • 如果操作数都是数值,则执行常规的除法计算。返回除得的余数
  • 如果被除数是无穷大值而除数是有限大的数值,则结果是NaN
  • 如果被除数是有限大的数值而除数是0,则返回NaN
  • 如果是Infinity/Infinity则结果是NaN
  • 如果被除数是有限大的数值而除数是无穷大的数值,则结果是被除数;
  • 如果被除数是0,则结果是0
  • 如果有一个操作数不是数值,则后台调用Number()将其转化为数值

加性操作符

加法和减法这两个应该说最简单的算术操作符了。但是在JS里面这2个操作符都有一系列行为。与乘法操作符类型。加性操作符也会后台转换不同的数据类型。

  • 加法
    加法操作符(+)的用法如下:

var result = 1+2;
如果两个操作符都是数值,则执行常规的加法计算。然后根据下面规则返回结果:

  • 如果有一个操作数是NaN,则结果就是NaN
  • 如果是Infinity加Infinity,则结果就是Infinity
  • 如果是-Infinity加-Infinity,则结果就是-Infinity
  • 如果是Infinity加-Infinity,则结果就是NaN
    [关于无穷只要2个不一样,结果就是NaN] ()
  • 如果是+0加+0,则结果就是+0;
  • 如果是-0加-0,则结果就是-0;
  • 如果是+0加-0,则结果就是+0

如果有一个操作数是字符串,那么就遵循下面的规则

  • 如果两个操作数都是字符串,则将第二个操作数与第一个操作数拼接起来.
  • 如果只有一个操作数是字符串,则将另一个操作数转换为字符串然后再讲两个字符串拼接起来
  • 如果有一个操作数是对象,数值或者布尔值,则调用他们的toString()方法取得相应的字符串值,然后在应用于前面关于字符串的规则,对于undefined和空,则分别调用String()函数并取得字符串"undefined"和"null";

见下例:

var result = 5+5; //两个数值相加
window.alert(result); //10
var result2 = 5+ "5"; //一个数值和一个字符串
window.alert(result2); // 结果就是55


var num1 = 5;
var num2 = 10 ;
var message = "The message is" + num1 +num2;
window.alert(message) //The message is 510;


var num1 = 5;
var num2 = 10 ;
var message = "The message is" + (num1 +num2);
window.alert(message) //The message is 15;


在这个例子里面一对圆括号将两个数值变量括在了一起,这样就是先算括号里面的,然后在与字符串拼接起来

减法

减法操作符(-)是另一个极为常用的操作符
var result = 2-1;
与加法类似,他也需要遵循下面的规则;

  • 如果两个操作数都是数值,则执行常规的减法操作并返回结果
  • 如果有一个操作数是NaN,则结果就是NaN
  • 如果是Infinity减去Infinity,则结果就是NaN
  • 如果是-Infinity减去-Infinity,则结果就是NaN
  • 如果是正无穷减去负无穷,则结果就是正无穷
  • 如果是负无穷减去正无穷,则结果就是负无穷
    关于无穷只要2个不一样看的就是前面。
  • 如果是+0减去+0,结果就是+0;
  • 如果是+0减去-0,结果就是-0;
  • 如果是-0减去-0 ,结果就是+0;
  • 如果一个操作数是字符串,布尔,null或者undefined,则先后在后台调用Number()函数将其转化为数值,然后在根据前面的规则,进行减法计算。如果转换的结果是NaN,减法的结果就是NaN
  • 如果有一个操作数是对象,则调用valueof()方法取得表示该对象的数值,如果得到的值是NaN,则减法结果就是NaN,如果对象没有valueof()方法,则调用toString()方法,得到字符串传换成数值.

下面几个例子说明规则
var result = 5-true; //结果就是4
var result2 = NaN -1 ; //结果就是NaN
var result3 = 5-3 ; //2
var result4 = 5 - ""; //5因为""转换成了0
var result5 = 5- "2"; //3 因为 "2"转换成了2
var result6 = 5-null ; //5 因为null变成了0

总结:
乘法预算。只要是判断不准的基本上就是NaN;
除法运算也一样
加法运算 要都是无穷只是符号不一样的话。结果就是NaN
减法运算 要都是无穷只是符号不一样的话,看前面,前面正就是正,前面负就是负

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容