数据类型及操作符介绍
Number
数字类型可以使用二进制,八进制,十进制和十六进制表示,当使用二进制表示时,在数字前面加上0b
,使用八进制表示时,在前面加上0
,使用十六进制表示时,在前面加上0x
,如下
var num1 = 0b110; //二进制表示,大小为6
var num2 = 010; //八进制表示,大小为8
var num3 = 0x1f; //十六进制表示,大小为31
console.log(num1);
console.log(num2);
console.log(num3);
6
8
31
小数的加减有精度问题,比如
var num1 = 0.1;
var num2 = 0.2;
var num3 = num1 + num2; //答案不是0.3
console.log(num3);
0.30000000000000004
NaN
表示的是Not a Number
,意思是不是一个数,两个NaN
是不相等的。使用0/0
会得到一个NaN
。
var num1 = 0/0;
console.log(num1);
NaN
var num1 = 0/0;
var num2 = 0/0;
console.log(num1 == num2);
false
我们可以使用isNaN(变量名)
来验证一个数是否是NaN
,如果是的话,会返回true
var num = 0 / 0;
console.log(isNaN(num));
true
String
对于一个字符串类型的变量,可以通过变量名.length
去获得字符串的长度
var str = "What are you doing?"
console.log(str.length);
19
转义字符:
转义字符 | 功能 |
---|---|
\t | 一个tab 的距离 |
\' | 单引号 |
\\ | 斜杠 |
\b | 退格 |
\f | 走纸换页 |
\n | 换行 |
\r | 回车 |
使用加号可以将字符串拼接,比如
var str1 = "what";
var str2 = " this?";
console.log(str1 + str2);
what this?
当字符串类型+
一个数字类型时,会得到一个数字类型,比如"10" + 5 = "105"
,但是当字符串类型与数字类型进行减法时,会得到一个数字,比如"10" - 5 = 5
,乘法与除法也与减法一样。
数据类型转换
转换为数字
转换为数字有三种办法,第一种是使用parseInt(变量名)
,是转化为整数,比如
console.log(parseInt("10")); //10
console.log(parseInt("10.98")); //10
console.log(parseInt("10a")); //10
console.log(parseInt("g10")); //NaN
10
10
10
NaN
第二种是parseFloat(变量名)
是转化为小数
console.log(parseFloat("10")); //10
console.log(parseFloat("10.98")); //10.98
console.log(parseFloat("10.98a")); //10.98
console.log(parseFloat("g10")); //NaN
10
10.98
10.98
NaN
第三种使用的是Number(变量名)
,是转化为数字
console.log(Number("10")); //10
console.log(Number("10.98")); //10.98
console.log(Number("10a")); //NaN
console.log(Number("g10")); //NaN
10
10.98
NaN
NaN
转化为字符串
转化为字符串有两种方法,第一种为.toString()
,该方法对undefined
和null
类型的无效,这两种类型可以使用String()
方法。如下
var num = 12;
var bool = true;
var und;
var nul = null;
console.log(num.toString()); //"12"
console.log(bool.toString()); //"true"
console.log(String(und)); //"undefined"
console.log(String(nul)); //"null"
12
true
undefined
null
转化为布尔类型
转化为布尔类型只有Boolean()
方法
var num1 = 1;
var num2 = -10;
var num3 = 0;
var str1 = "what";
var str2 = "";
var nul = null;
var und;
console.log(Boolean(num1)); //1 --> true
console.log(Boolean(num2)); //-10 --> true
console.log(Boolean(num3)); //0 --> false
console.log(Boolean(str1)); //"what" --> true
console.log(Boolean(str2)); //"" --> false
console.log(Boolean(nul)); //null --> false
console.log(Boolean(und)); //undefined --> false
操作符
算术操作符
+, - , * , / , %
,没啥好说的。
复合运算符
+=, -=, *=, /=, %=
a += b ---> a = a + b
a -= b ---> a = a - b
... ...
关系运算符
>, < , >=, <=, ==, ===, !=, !==
,这里讲一下==
与===
的不同
"5" == 5 ----> true
"5" === 5 ----> false
==
只比较值是否相等,而===
除了比较值是否相等意外,还比较数据类型是否相同。
逻辑运算符
&&, ||, !
,这个也没啥说的。
一元运算符
++, --
的作用是让变量自增1
或者自减1
。而++, --
既可以放在运算符后面,也可以放在运算符前面,如果使用该运算符未参加计算,则二者是一样的,即
++num; ---->num = num + 1;
num++; ---->num = num + 1;
如果该变量参加计算,则有不同的效果,如
a = num++ + b; ---->
a = num + b;
num = num + 1;
a = ++num + b; ---->
num = num + 1;
a = num + b;
三元运算符
具体语法为
表达式1 ? 表达式2 : 表达式3
首先对表达式1
进行判断,如果为真,则执行表达式2
,否则执行表达式3
。