javascript语法基础系列之操作符
一、其他基本类型转换为Number类型
1.null转化成Number
1 | var ret = Number(null); |
2.undefined 转化成Number
1 | console.log(Number(undefined)); // NaN |
3.boolean转成Number
1 | console.log(Number(true)); |
4.String转成Number
Number()
1.如果字符串中存在除了数字和小数点以外的其他字符,则转换失败,值为NaN
2.加减号在头表示正负号
3.开头有空白字符可以过滤
1 | // string -> number(Number()) |
parseInt()
1.将接收到的数据(一般都是字符串)转化成整数
2.转换规则:从第一个非空白字符(空格、换行、tab)开始转换,直到遇到一个非数字字符为止。
3.如果转化失败,结果为NaN
4.从第一个非空字符开始,如果第一个字符不是数字或者正负号,parseInt()就会返回NaN,因此,parseInt()转换空字符结果为NaN,但是Number返回0
1 | //string ->number(parseInt()) |
parseFloat()
1.将接收到的数据(一般都是字符串)转成浮点数
2.遇到的第一个小数点有效,第二个小数点就无效了
1 | // string -> number(parseFloat()) |
二、其他基本类型转为String类型
1.null转化成String
1 | // null -> string |
2.undefined转化成String
1 | var str = undefined + ''; |
3.boolean转化成String
1 | // boolean -> string |
3.number转化成String
1 | // number -> string |
三.其他基本类型转换为Boolean类型
1 | // 绝大多数转成布尔值,结果都为true |
四、prompt(“ “)
prompt()接收外部的数据,默认是字符串类型
有时需要将其转化成整数
var age = parseInt(prompt(“请输入年龄”));
五、算数运算符和算数运算表达式
1.表达式:由变量、常量和运算符组成的式子
2.如何阅读表达式
功能:进行相关的运算
值:相关运算之后得到的值
3.算数运算符
+-*/、%(取余数)
*(乘)
a.如果操作数都是数值,则执行常规的乘法运算,如果结果超过JS数值范围,则返回Infinity或者-Infinity
b.NaN参与乘法运算,则结果返回NaN
c.Infinity0,返回NaN
d.Infinity与非0操作数运算时,结果返回Infinity或者-Infinity。取决于有符号操作数的符号。
e.Infinity Infinity,结果是Infinity
f.如果有一个操作数不是数值,那么在参与运算前会先对操作数执行Number()将其转化为数值,再应用上面的规则1
2
3
4
5
6
7
8
9// * 乘法
console.log(2*3); // 6
console.log(NaN*3); // NaN
console.log(Inifnity*0); // NaN
console.log(Infinity*2); // Infinity
console.log(Infinity*(-2)); // -Infinity
console.log(Infinity*Infinity); // Infinity
console.log(Infinity*(-Infinity));// -Infinity
console.log("2"*3); // 6
/(除)
a.如果操作数都是数值,则执行常规的除法运算,如果结果超过JS数值范围,则返回Infienter code herenenter code hereity或者-Infinity
b.NaN参与除法运算,则结果返回NaN
c.Ienter code herenfinity / Infinity,结果为NaN
d.0 / 0, 结果为NaN
e.如果是非0的有限数被0除,则结果是Infinity或者-Infinity,取决于有符号操作数的符号enter code here`
f.如果是Infinity被任何非0 整数值除,则结果是Infinity或者-Infinity
g.如果有一个操作数不是数值,那么在参与运算前会先对操作数执行Number()将其转化为数值,再应用上面的规则1
2
3
4
5
6
7
8
9
10// /除法
console.log(5/3); // 1.6666666
console.log(NaN/3); // NaN
console.log(Infinity/Infinity); // NaN
console.log(0/0); // NaN
console.log(2/0); // Infinity
console.log((-2)/0);//-Infinity
console.log(Infinity/2); //Infinity
consol`enter code here`e.log(Infinity/(-2)); //-Infinity
console.log('5'/3); //1.66666
% (取余)
a.如果enter code here操作数都是数值,则执行常规的取余运算
b.如果被除数是无穷大值,而除数是有限大值,结果为NaN
c.如果被除数是有限大值,除数是0,结果为NaN
d.被除数是0,结果为0
e.如果有一个操作数不是数值,那么在参与运算前会先对操作数执行Number()将其转化为数值,再应用上面的规则1
2
3
4
5
6// % 取余
console.log(5%3); // 2
console.log(Infinity % 3); //NaN
console.log(3%0); // NaN
console.log(0 % 2); // 0
console`enter code here`.log('7'%3); //1
+(加)
a.如果操作数都是数值,则执行常规的加法运算
b.如果有一个操作数是NaN,则返回NaN
c.Infinity + Infinity = Infinity
d.(-Infinity) + (-Infinity) = -Infinity
e.Infinity + (-Infinity) = NaN
f.两个都是字符串,则拼接字符串
g.一个数值,一个字符串,则现将数值转为String类型,然后拼接字符串1
2
3
4
5
6
7
8// + 加法
console.log(5+3); // 8
console.log(NaN + 3); //NaN
console.log(Infinity + Infinity); // Infinity
console.log((-Infinity) + (-Infinity)); // -Infinity
console.log(Infinity + (-Infinity)); //NaN
console.log('hello ' + 'world'); // hello world
console.log('hello ' + 2017); // hello 2017
-减
a.如果操作数都是数值,则执行常规的减法运算
b.如果有一个操作数是NaN,则返回NaN
c.Infinity - Infinity = NaN
d.(-Infinity) - (-Infinity) = NaN
e.Infinity - (-Infinity) = Infinity
f.-Infinity - Infinity = -Infinity
1 | // - 减法 |
4.算术运算表达式
变量1 算数运算符 变量2
5.功能:进行相关的数学运算,不能改变变量的值
6.值:相关数学运算之后的结果
六、自增自减运算符
1.自增
自增运算符 ++
自增运算表达式
变量 ++ 后++,先取值再加1,表达式的值是变量+1之前的值
++ 变量,先++,先加1再取值,表达式的值是变量+1之后的值
功能:两种都是实现变量的值自动加1
2.自减
自减运算符 –
自减运算表达式
变量– 后–,先取值再减1,表达式的值是变量减1之前的值
–变量 先–,先减1再取值,表达式的值是变量减1之后的值
功能:两种都是实现变量的值自动减1
七、赋值运算符和赋值运算表达式
赋值运算符 =
赋值运算表达式 变量 = 表达式
功能:实现对变量的赋值操作
值
复合运算符
+= a+=1 === a=a+1
-= a-=1 === a=a-1
= a=1 === a=a*1
/= a/=1 === a=a/1
%= a%=1 === a=a%1
赋值运算结束之后,变量的值
八、关系运算符和关系运算表达式
关系运算符
>、>=、<=、
== 只比较数值,不比较类型。比较之前会进行类型统一
=== 数值和类型都要相等才可
关系运算表达式: 表达式1 关系运算符 表达式2
功能: 计算表达式1和表达式2的关系值
值: 如果关系成立,值为真,否则值为假
注意: 关系运算符不能连用。例如 1 <= num <= 5 会存在语法错误
九、逻辑运算符
逻辑与(&&)有一个条件为假,则结果为假
逻辑或(||)有一个条件为真,则结果为真
逻辑非(!)取非运算
十、三目运算和三目运算符
三目运算符
三目运算表达式: 表达式 ? 表达式1 : 表达式2
功能:计算”表达式”的值,如果”表达式”的值为真,则计算表达式1的
值,否则计算表达式2的值
值:如果”表达式”的值为真,则取表达式1的计算值作为结果,否则取表
达式2的计算值作为结果