数据类型转换与表达式运算符
1.数据类型转换
JavaScript 是一种动态类型语言,变量没有类型限制,可以随时赋予任意值。
变量值的数据类型改变就是变量数据类型的转换。
例如:
var x = 1;
console.log('x的数据类型',typeof x); // number
x = '积云教育'; // x变量赋值字符串
console.log('x的数据类型',typeof x); // x 字符串类型
转换为字符串类型
-
toString()
var num = 5; console.log(num.toString());
-
String()
String()函数存在的意义:有些值没有toString(),这个时候可以使用String()。比如:undefined和null
-
拼接字符串方式
num + “”,当 + 两边一个操作符是字符串类型,一个操作符是其它类型的时候,会先把其它类型转换成字符串再进行字符串拼接,返回字符串
转换为数值型
-
Number()
Number()可以把任意值转换成数值,如果要转换的字符串中有一个不是数值的字符,返回NaN
-
parseInt()
var num1 = parseInt("12.3abc"); // 返回12,如果第一个字符是数字会解析知道遇到非数字结束 var num2 = parseInt("abc123"); // 返回NaN,如果第一个字符不是数字或者符号就返回NaN
-
parseFloat()
parseFloat()把字符串转换成浮点数 parseFloat()和parseInt非常相似,不同之处在与 parseFloat会解析第一个. 遇到第二个.或者非数字结束 如果解析的内容里只有整数,解析成整数
-
+,-等运算
var str = '500'; console.log(+str); // 取正 console.log(-str); // 取负
转换成布尔类型
- Boolean()
0 ''(空字符串) null undefined NaN都会转换成false,其它都会转化成true
2.常用运算符
5 + 6
表达式组成: 操作数和操作符,会有一个结果
逻辑运算符(布尔运算符)
&& 与 两个操作数同时为true,结果为true,否则都是false
|| 或 两个操作数有一个为true,结果为true,否则为false
! 非 取反
算术运算符
+ - * / %
加 减 乘 除 取余
关系运算符(比较运算符)
< > >= <= == != === !==
==与===的区别:==只进行值得比较,===类型和值同时相等,则相等
var result = '55' == 55; // true
var result = '55' === 55; // false 值相等,类型不相等
var result = 55 === 55; // true
赋值运算符
= += -= s /= %=
例如:
var num = 0;
num += 5; //相当于 num = num + 5;
一元运算符
一元运算符:只有一个操作数的运算符
二元运算符: 两个操作数的运算符 比如 5 + 6
++ 自身加1
– 自身减1
-
前置++
var num1 = 5; ++ num1; var num2 = 6; console.log(num1 + ++ num2);
-
后置++
var num1 = 5; num1 ++; var num2 = 6 console.log(num1 + num2 ++);
-
猜猜看
var a = 1; var b = ++a + ++a; console.log(b); var a = 1; var b = a++ + ++a; console.log(b); var a = 1; var b = a++ + a++; console.log(b); var a = 1; var b = ++a + a++; console.log(b);
总结
前置++:先加1,后参与运算(先自增,后运算)
后置++:先参与运算,后加1(先运算,后自增)
上面两个理解后,下面两个自通
前置-- :先减1,后参与运算
后置-- :先参与运算,后减1
三元运算符
表达式1 ? 表达式2 : 表达式3
是对if……else语句的一种简化写法
运算符的优先级
优先级从高到底
1. () 优先级最高
2. 一元运算符 ++ -- !
3. 算数运算符 先* / % 后 + -
4. 关系运算符 > >= < <=
5. 相等运算符 == != === !==
6. 逻辑运算符 先&& 后||
7. 赋值运算符
3.关系表达式
将同类型的数据(如常量、变量、函数等),用运算符号按一定的规则连接起来的、有意义的式子称为表达式。