图片 2

或许和上边相同,同样的就不说了。

加性操作符

加法和减法这多个应该说最轻巧易行的算术操作符了。然则在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

js中数据类型分为二种,第一种为主的数据类型:Number,String,Boolean,Null,Undefiend;

JavaScript描述了一组用于操作数据值的操作符,富含算数操作符位操作符提到操作符等。JavaScript中的操作符分裂之处在于,它们可以适用于广大连串的值。

操作符字符串的隐性调换
 乘法

减法

减法操作符(-)是另三个颇为常用的操作符
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;
除法运算也一律
加法运算 要都是Infiniti只是符号区别样的话。结果就是NaN
减法运算
要都以无穷只是符号不平等的话,看眼下,前边正正是正,后边负正是负

js中的number

JavaScript不区分整数和浮点数,统一用Number表示,举例:

1  //整数1

3.1415926  //小数

-12312 //负数

1.23798e12  //科学计数法

特殊的number类型

NaN //NaN表示Not a Number,当不可能测算结果时用NaN表示

Infinity  //
Infinity表示特别大,当数值当先了JavaScript的Number所能表示的最大值时,就表示为Infinity

3.一元加、减操作符

一元加、减操作符重要用以算数运算,对于非数值类型,也可用于数值调换。

一元加操作符放在数值前不会对数值发生其余影响。

var num = 9;
num = +num; // 值仍然为9,相当于添加了一个正号

对此非数值,一元加操作符会像Number()转型函数同样对那一个值推行调换。举个例子:

var s1 = "01";
var s2 = "1.1";
var s3 = "z";
var b = false;
var f = 1.1;
var obj = {
    valueOf : function() {
        return -1;
    }
};
s1 = +s1;   // 1
s2 = +s2;   // 1.1
s3 = +s3;   // NaN
b = +b;     // 0
f = +f;     // 1.1
obj = +obj; // -1

一元减操作符主要用来表示负数。

var num = 9;
num = -num;     // -9

将一元减操作符应用于非数值时,会绳趋尺步与一元加操作符一样的条条框框:

var s1 = "01";
var s2 = "1.1";
var s3 = "abc";
var b = false;
var f = 1.1;
var obj = {
    valueOf :function(){
        return -1;
    }
};

s1 = -s1;   // -1
s2 = -s2;   // -1.1
s3 = -s3;   // NaN
b = -b;     // 0
f = -f;     // -1.1
obj = -obj; // 1

若果比较的八个数都是字符串,那么会相比字符串对应的字符串编码值。

若是有贰个操作数是字符串,那么就根据上边的平整

  • 假若三个操作数都以字符串,则将第二个操作数与第2个操作数拼接起来.
  • 要是唯有二个操作数是字符串,则将另二个操作数调换为字符串然后再讲四个字符串拼接起来
  • 若果有三个操作数是指标,数值只怕布尔值,则调用他们的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;


在这一个例子里面一对圆括号将四个数值变量括在了共同,那样正是先算括号内部的,然后在与字符串拼接起来

js中的string

“sdadasd” //字符串sdadasfd,用单引号或然双引号包裹起来

2.全等和不全等

全等和不全等的区分在于:不会开始展览类型调换

var result1 = ("55" != 55);     // false
var result2 = ("55" !== 55);    // true

null == undefined会再次回到true,因为它们是周边的值;但null ===
undefined会重临false,因为它们是例外的品种。

 

 

 减法

除法

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

var result = 66/11;

与乘法类似,除法操作符坚守上边包车型客车条条框框:

  • 假如操作数是数值,即四个正数或四个负数相除的结果依旧正数,而一旦唯有三个操作数有标记,那么结果正是负数。要是赶上了数值的代表范围。即重临Infinity可能-
    Infinity
  • 比如有八个操作数是NaN,则结果是NaN
  • 一旦是Infinity被Infinity除,则结果是NaN
  • 只即便0/0则结果是NaN
  • 如要是非0的有限数被0去除,则结果正是Infinity只怕-Infinity取决于无穷的标识
  • 假设是Infinity被别的非0数值除,结果就是Infinity或许-Infinity取决于无穷的号子
  • 如若叁个操作数不是数值,则后台调用Number()将其转化为数值

js中的运算符优先级

运算符                                                                
说明

.[ ] ( )                                      
字段访谈、数组索引、函数调用和表明式分组

++ — – ~ !              delete new typeof
void一元运算符、再次来到数据类型、对象创造、未定义的值

* / %                                                
相乘、相除、求余数

+ – +                                              
 相加、相减、字符串串联

<< >> >>>                                        
                 移位

< <= > >= instanceof    
小于、小于或等于、大于、大于或等于、是或不是为特定类的实例

== != === !==                                  
 相等、不相等、全等,不全等

&                                                                    
  按位“与”

^                                                                    
 按位“异或”

|                                                                    
   按位“或”

&&                                                                    
逻辑“与”

||                                                                    
   逻辑“或”

?:                                                                    
 条件运算

= OP=                                            赋值、赋值运算(如 +=
和 &=)

,                                                                    
   四个计算

四、乘性操作符

JavaScript中定义了3个乘性操作符:乘法、除法和求模。与其余语言差别的是,在操作非数值的事态下会自行实行类型调换。假使某些操作数不是数值,后台会先选取Number()将其退换为数值。

拜访下边包车型地铁标题:

乘性操作符

  • 在JS里面定义了3个乘性操作符,乘法,除法和求模。那么些操作数在非数值的情况下会试行活动的类型转变。
  • 万一插手乘法总结的有些操作数不是数值,后台有优先接纳Number()转型函数将其转移为数值。也等于说空字符串将被当做0,布尔true将被用作1

js中的隐式调换

console.log(“——-以下乘法———“);

console.log(5*”5″);//25

console.log(5*”a”);//nan

console.log(5*NaN);//nan

console.log(5*null);//0

console.log(5*undefined);//nan

console.log(5*5);//25

console.log(“——-以上乘法———“);

//
1、就算2个数值都是数字,那么直接开展乘法运算,(相信大家都会的,和小学数学同样,同期要专注数字的标识),若是乘积数值抢先了ECMAscript的数值表示范围,则赶回Infinity(正无穷)可能-Infinity(负无穷)

//  2、假使三个数是NaN,那么结果便是NaN

// 3、如果Infinity与0相乘,结果是NaN

//
4、倘诺一个操作符是数字,其他叁个不是数值,那么先用Number()函数,将其张开转账,将转向出来的值与数字进行相乘。假设转变出来的结果出现NaN,那么结果就是NaN。

//除法

console.log(“——-以下除法———“);

console.log(5/”5″);//1

console.log(5/”a”);//nan

console.log(5/NaN);//nan

console.log(5/null);//in

console.log(null/5);//0

console.log(5/undefined);//nan

console.log(5/5);//1

console.log(5/0);//in

console.log(0/5);//0

console.log(0/0);//nan

console.log(“——-以三巳法———“);

// 和乘法类似,独一多的一条就是0/0结实是NaN

//取余、求模

console.log(“——-以下取余、求模——–“);

console.log(16%”5″);//1

console.log(5%”a”);//nan

console.log(5%NaN);//nan

console.log(5%null);//nan

console.log(null%5);//0

console.log(5%undefined);//nan

console.log(5%5);//0

console.log(5%0);//nan

console.log(0%5);//0

console.log(0%0);//nan

console.log(“——-以上取余、求模———“);

// 1、被除数是无穷大,除数是少数大的值,那么结果是NaN

// 2、被除数是有限大的值,除数是0,那么结果是NaN

// 3、Infinity%Infinity结果是NaN

// 4、被除数是零星大的值,除数是无穷大的值,结果是被除数。

// 5、被除数是0,结果是0

//加法

console.log(“——-以下加法——–“);

console.log(16+”5″);//165

console.log(5+”a”);//5a

console.log(5+NaN);//nan

console.log(“5″+null);//

console.log(5+undefined);//nan

console.log(5+5);//10

console.log(“多个数的和是”+5+5);//55

console.log(“七个数的和是”+(5+5));//10

console.log(“——-以上加法——–“);

// 
1、有一个是字符串,那么别的二个也会转移为字符串进行拼接。如果二个是字符串,别的一个是null或许undefined,那么相加,null只怕undefined就能够调用String()方法,获得字符串“null”或许“undefined”,然后开始展览拼接。

//
2、倘若三个数字加null可能undefined,那么依旧把null或然undefined实行Number()调换之后再相加。

// 3、剩下的法则和别的的大半,就相当少说了。

//减法

console.log(“——-以下减法——–“);

console.log(16-“5”);//11

console.log(typeof 16-“5”);

console.log(5-“a”);//nan

console.log(5-NaN);//nan

console.log(5-null);//5

console.log(5-undefined);//nan

console.log(5-5);//0

console.log(5-true);//4

console.log(5-“true”);//nan

console.log(5-“”);//5

//alert(Number(‘sds’));nan

// alert(Number(”));//0

console.log(“五个数的差是”+5-5);//nan

console.log(“七个数的差是”+(5-5));//shi0

console.log(“——-以上减法——–“);

// 1、Infinity-Infinity结果是NaN

// 2、-Infinity-Infinity结果是-Infinity

// 3、三个数字减Infinity结果是-Infinity

// 4、Infinity-(-Infinity)结果是Infinity

//
5、假使操作数是目的,则调用对象valueOf方法,如果结果是NaN那么结果就是NaN。若无valueOf方法,那么调用toString()方法,并将赢得的字符串转换为数值。

1.乘法

乘法操作符由叁个星号(*)表示,用于计算五个数值的乘积。

var result = 12 *23;

在管理特殊值的情况下,乘法操作符服从下列特殊的法则:

  • 一旦操作数都是数值,则施行寻常的乘法运算。如若乘积超过了JavaScript数值的意味范围,则赶回Infinity或-Infinity
  • 要是三个操作数是NaN,则结果为NaN
  • 设如果Infinity与0相乘,则结果是NaN
  • 假诺是Infinity与非0数值相乘,则结果是Infinity或-Infinity,取决于有标记操作数的旗号
  • 即使是Infinity与Infinity相乘,则结果是Infinity
  • 万一有二个操作数不是数值,则在后台调用Number()将其转移为数值,然后再使用方面包车型大巴平整。

1、被除数是无穷大,除数是个别大的值,那么结果是NaN
2、被除数是轻易大的值,除数是0,那么结果是NaN
3、Infinity%Infinity结果是NaN
4、被除数是有限大的值,除数是无穷大的值,结果是被除数。
5、被除数是0,结果是0
减法

求模

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

var result = 26%5 ; // 等于1
与别的两个乘性操作符类似,求模运算符会遵从上边的法则:

  • 设若操作数都是数值,则进行平常的除法总计。重返除得的余数
  • 假若被除数是用不完大值而除数是轻巧大的数值,则结果是NaN
  • 纵然被除数是零星大的数值而除数是0,则赶回NaN
  • 一旦是Infinity/Infinity则结果是NaN
  • 只要被除数是有限大的数值而除数是无穷大的数值,则结果是被除数;
  • 假如被除数是0,则结果是0
  • 倘若有八个操作数不是数值,则后台调用Number()将其转化为数值

第几种是错落有致的数据类型,统称object(援引类型)。

1.加法

加法操作符的应用格局如下:

var result = 1 + 2;

一经多个操作符皆以数值,实施常规的加法总括,然后根据如下准则重回结果:

  • 如果有三个操作数是NaN,则结果是NaN
  • Infinity加Infinity,则结果是Infinity
  • -Infinity加-Infinity,则结果是-Infinity
  • Infinity加-Infinity,则结果是NaN
  • +0加+0,结果是+0
  • -0加-0,结果是-0
  • +0加-0,结果是+0

假使有二个操作数是字符串,法规如下:

  • 多少个操作数都以字符串,则将第叁个操作数与第多少个操作数拼接起来
  • 只有三个操作数是字符串,则将另二个操作数转变为字符串,然后再将三个字符串拼接起来

假使有三个操作数是指标、数值或布尔值,则调用它们的toString()方法得到相应的字符串值,然后再使用后边境海关于字符串的平整。对于undefined和null,则分别调用String()函数获得字符串“undefined”和“null”。

 console.dir("-------以下减法--------");
 console.dir(16-"5");
 console.dir(5-"a");
 console.dir(5-NaN);
 console.dir(5-null);
 console.dir(5-undefined);
 console.dir(5-5);
 console.dir(5-true);
 console.dir(5-"true");
 console.dir(5-"");
 console.dir("两个数的差是"+5-5);
 console.dir("两个数的差是"+(5-5));
 console.dir("-------以上减法--------"); 

乘法

乘法操作符由三个星号(*)表示,用于总括多个数值的乘积。
例如:

var result = 34*56;

在管理极其值得情状下,乘性操作符服从上边包车型客车条条框框:

  • 借使操作数都以数值,实行符合规律的乘法计算,即多少个正数或许七个负数相乘的结果要么正数,而只要独有三个操作数有记号,那么结果正是负数。假如乘积超越了JS的象征范围则赶回Infinity恐怕-Infinity

  • 万一是Infinity与0相乘则结果是NaN

  • 一经二个操作数是NaN,则结果就是NaN
  • 如若是Infinity与非0数值相乘。则结果正是Infinity或许-Infinity取决于符号操作数的标识
  • 倘固然Infinity与Infinity相乘,则结果是Infinity
  • 假定有叁个操作数不是数值,则后台调用Number()将其转化为数值,然后在总计

js中的运算

图片 1

算术运算符

图片 2

赋值运算符

2.减法

减法操作符与加法操作符相似。

在管理各个数据类型时依据如下准则:

  • 设若七个操作数都以数值,则实行平常算术运算操作
  • 倘使有贰个操作数是NaN,则结果是NaN
  • 即使是Infinity减Infinity,则结果是NaN
  • 比方是-Infinity减-Infinity,则结果是NaN
  • 一旦是Infinity减-Infinity,则结果是Infinity
  • 若果是-Infinity减-Infinity,则结果是-Infinity
  • 如倘使+0减+0,则结果是+0
  • 设要是+0减-0,则结果是-0
  • 假诺是-0减-0,则结果是+0
  • 比如有二个操作数是字符串、布尔值、null或undefined,则先进行Number()函数将其转移为数值,然后再执行减法总结。
  • 即使有一个操作数是指标,则调用对象的valueOf()获得该指标的数值。如果未有valueOf()方法,则调用其toString()并拿走字符串转变为数值。

举多少个例证:

var result1 = 5 - true; // 4
var result2 = NaN - 1;  // NaN
var result3 = 5 - 3;    // 2
var result4 = 5 - "";   // 5
var result5 = 5 - "2";  // 3
var result6 = 5 - null; // 5
var a;

console.dir(0 == false);//true

console.dir(1 == true);//true

console.dir(2 == {valueOf: function(){return 2}});//true

console.dir(a == NaN);//false
console.dir(NaN == NaN);//false

console.dir(8 == undefined);//false

console.dir(1 == undefined);//false

console.dir(2 == {toString: function(){return 2}});//true

console.dir(undefined == null);//true

console.dir(null == 1);//false

console.dir({ toString:function(){ return 1 } , valueOf:function(){ return [] }} == 1);//true

console.dir(1=="1");//true

console.dir(1==="1");//false

三、布尔操作符

布尔操作符一共有3个:非(!)、与(&&)、或(||)。

 关系操作符

总结

js隐式转化有广马头角,尽量用===替代==

1.等于和不对等

JavaScript中万分操作符由“==”表示,不等于由“!=”表示。那多少个操作符都会先对操作数进行强制转型,然后再比较它们的相等性。

在改造差异的数据类型时,相等和不等于操作时服从下列基本准绳:

  • 一经有一个操作数是布尔值,则先推行调换(false-0,true-1)
  • 假设贰个操作数是字符串,另二个操作数是数值,则先将字符串转变为数值
  • 假使三个操作数是目的,另一个操作数不是,则调用对象的valueOf()方法,用收获的主干项目与值再拓展相比较

那八个操作符在张开比较时,遵守下列准则:

  • null和undefined是相当的
  • 正如前边,null和undefined不能够转变为任何值
  • 纵然五个操作数都以指标,则相比较它们是还是不是同二个目的。
 console.dir("-------以下关系操作符--------");
 console.dir(16>"5");
 console.dir("16">"5");
 console.dir(5<"a");
 console.dir(5>=NaN);
 console.dir(5<NaN);
 console.dir(NaN>=NaN);
 console.dir(5>=null);
 console.dir(5>=undefined);
 console.dir(5>=5);
 console.dir(5>=true);
 console.dir(5>="true");
 console.dir(5>="");
 console.dir("Brick">"alphabet");
 console.dir("brick">"alphabet");
 console.dir("-------以上关系操作符--------"); 

调换准绳

Boolean(undefined):false

Number(undefined):NaN

String(undefined):’undefined’

Boolean(null):false

Number(null):0

String(null):’null’

Number(true): 1 || Number(false) : 0

String(true):’true’ || String(false):’false’

Boolean(undefined):false

Boolean(null):false

Boolean(非空对象满含空数组[]和空对象{}):true

Boolean(非0): true || Boolean(0和NaN):false

Boolean(非空包蕴空格字符串):true || Boolean(”):false

Number(true):1 || Number(false):0

Number(各样进制的数字):运算后的十进制的数字,如1.0或1.或01会以1输出

Number(undefined):NaN

Number(null):0

Number(字符串):

Number(只含有数字的十进制和十六进制的字符串):运算后的十进制的数字

[注意]字符串中不识别八进制,遵照十进制数字处理

Number(”和’ ‘):0

Number(别的处境的字符串):NaN

Number(对象):

Number([]和[0]和[-0]):0

Number([数字]):运算后的数字

Number([1,2]和{}和别的对象):NaN

5.左移

左移操作由三个低于号(<<)表示,那个操作符会将数值的有着位向左移动钦定的位数。譬喻:

var n1 = 3; // 二进制11
var n2 = n1 << 5;   // 二进制1100000,十进制96

在向左移位后,原数值的左边手多出5个空位。左移操作会以0来填充这个空位,左移不会潜移默化操作数的号子位,左移1位也就是乘以2。

 console.dir("-------以下取余、求模--------");
 console.dir(16%"5");
 console.dir(5%"a");
 console.dir(5%NaN);
 console.dir(5%null);
 console.dir(null%5);
 console.dir(5%undefined);
 console.dir(5%5);
 console.dir(5%0);
 console.dir(0%5);
 console.dir(0%0);
 console.dir("-------以上取余、求模---------"); 

五、加性操作符

与乘性操作符相似,加性操作符也会在后台转变不一样的数据类型。

admin

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注