运算符

数据的运算:

说直白点:就是利用数学的运算方式来对我们变量中存储的数据进行:计算,对比,条件设置,赋值等处理

运算所使用的符号叫做运算符:

运算符分为:算术运算符,关系运算符,逻辑运算符,赋值运算符,三目运算;

算术运算符:

加号:+:当+号在运算中遇到字符串,加号变成拼接符,所有数据类型都变成字符串;当布尔值参与数字相加的时候,布尔值自动转化为数字,true=1;false=0;

var a=10;

var b="12";

var c=a+b;

console.log(c)//1012

console.log(typeof(c))//string

var a=true;

var b=false;

var c=a+b//1,数据类型:number。

减号:-;当数字与数字类型的字符串进行减法运算的时候,计算机先强制将数字类型字符串转变位数字在参与计算。得到结果是一个number类型。

var a=10;

var b="12";

var c=a-b;

console.log(c)//-2

console.log(typeof(c))//number

var a=10;

var b="12a";

var c=a-b;

console.log(c);//NaN

console.log(typeof(c));//number

所有的数据类型在参与减法运算中,都会被强制转化为数字,在参与计算。当非数字字符串参与减法运算,结果出现NaN。

乘号:*

一切乘法运算中,先把数据类型转化为数字,然后相乘。当非数字字符串参与乘法运算得到NaN结果。

当我们遇到NaN数据的时候,我们不能直接使用typeof()进行判断,而是需要isNaN()进行判断,判断的结果是:TRUE或者FALSE

在我们做算术运算中,如果出现小数的加减乘除运算的时候,出现小数点后的取值出现误差,这样的误差叫做舍入误差。

解决方案:c.toFixed(2);意思是将变量c的结果取小数点后两位数,并且自动四舍五入。

例如:var c=1.2-0.5;//0.7000000001;c.toFixed(2)//0.70;

除法:/,所有的数据先转化为数字类型,然后参与相除,1除以0//infinity,无穷大。、

求模运算:a%b

var a=123;

var b=10;

var c=a%b;

c的结果是123除以10之后所剩余的量。结果为3.所以求模运算就是一种取除法中的余数运算。

自增运算:

var a=10;

console.log(a+a++);

a++在运算中先参与运算在第二步运算的时候才开始加1;

a + a++=10+10=20//这个时候的a++必须等待第三个a出来才会让第三个a+1;

a++ +a =10+11=21//此时a++参与第一步运算,遇到第二a,所以他将加1之后的值赋给了第二个a.

练习作业:

var a=2;

var b=3;

a+b++ +a++ +b=?

在自增运算中,n++和++n的区别是什么?

n++是先运算后自加,只有公式中出现第二个n才会讲增加的1赋值给第二个n上。

++n是先自加后运算。

在不参与运算的情况下,n++,与++n的值是一样的。

计算机的计算顺序:1,先算括号内,2,再算乘除,3,算加减

var a=1;

var b=2;

var c=3;

(a++*++a -++b)/++c=?

关系运算符:

其实就是求几个数据之间的大小关系。

有大于>,

小于<

大于等于>=

小于等于<=

==等于

===绝对等于

!=不等于;

关系运算结果返回的是一个boolean值,只有true或者false;

面试题:==和===的区别。

==是先进行数据类型转化,然后再比较是否相等。

===是不进行数据类型转化,直接比较,更加严格一些、

在关系运算中,一切数据类型遇到数字,都先转化为数字再对比。如果无法转化为数字,就会出现false结果

再字符串的关系对比中,按照大小顺序是根据Unicode编码顺序来进行的。

A-Z之间的Unicode编码顺序:65-90;

a-z之间的unciode编码顺序:97-122;

0-9之间的顺序:48-57;

汉字的Unicode编码顺序:u4e00-9fa05

逻辑运算:

其实就是设置运算的条件,有“与”“或”“非”三种

var a=prompt("请输入数字")

if(!(a>70)){//逻辑非运算,凡是小于等于70才成立

alert("你好");

}

if(a>70||a>90){//逻辑或运算,多个条件满足其一即可

alert("你好");

}

if(a>70&&a<90){//逻辑与运算。多个条件必须同时满足才行。

alert("你好");

}

赋值符运算:

赋值运算 =  +=  -=  *=  /=  %=

等号:将等号右侧的内容赋值给左侧的名字。

+=:str+=5;str=str+5 //此时返回的结果是11

面试题:

var str="hello";

var str=str+"world";

创建了几个变量?标准答案:3个;

解析过程:因为字符串变量一旦创建,空间不可改变,所以为了容纳helloworld,我们必须创建一个新变量他的值就是helloworld。加上之前的hello变量和world变量,总共是3个。

条件三目运算:

其实就是一个条件判断运算。

其中语法包含:条件?“条件成立执行的结果”:“条件不成立执行的结果”

数据类型的转化:

隐式转化:

在数据运算中,js程序自动根据运算的环境,对数据类型进行自动转化,例如在加运算中,所有数据遇到字符串,都会变成字符串,在关系运算中,

所有数据遇到number都会转变成number类型。这样的转化被称为隐式转化。

隐式转化:会自动根据环境进行转化,不需要人工操作,缺点:转化不可控

为了能够让数据的使用可控,我们需要能够将数据转化人为可控制。

这种需要人为转化的:我们称为显式转化或者强制转化。

强制转化就需要我们使用相应的数据类型转化的方法;

1,所有数据变成string类型:

方法1,String(“内容”);常用

方法2,x.toString();

2, 所有数据转化为number类型:

方法1:Number(x);

//将所有数据转化为number类型,如果遇到非数字类型转化结果为:NaN;带有小数点的数字内容直接转化为小数。

方法2:parseInt(x);将所有数据转化为整数。遇到数字在前,文字内容在后的,该方法直接读取能够读到的数字部分转化为整数。,小数只显示整数部分

方法3:parseFloat(x);将所有数据读取出来,如果有小数将显示小数内容。

总结:parseInt(),parseFloat(),只是将字符串string转化为数字类型number,所以在上述两种方法中。圆括号内如果直接写内容就必须加双/单引号。

练习:做一个超市的收银程序:

1,工作流程:

3,Boolean(x)//将所有数据类型转化为布尔值。除了,null,undefined,""空字符,0,false这些返回结果是false之外,其他都是返回true。

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

推荐阅读更多精彩内容