一、数据类型
(一)基本类型
string:字符串
必须用英文的引号(单引号和双引号都可以)引起来,例如:"a","张三"。
number:数字
直接写数字就行,例如:3,3.14都是数字类型。NaN是number类型的一种
boolean:布尔类型
只有两个值,true(成立)和false(不成立)
(二)特殊类型
null:空
undefined:未定义
定义了一个变量,但没赋值,变量中的内容就为undefined
(三)复杂(对象)类型
object:{}
二、数据类型的转换
(一)字符串和数字
字符串转数字
(1)parseInt
格式:parseInt(str) 注:str是一个字符串
注意事项:parseInt只会保留整数部分,如果字符串开头不是数字直接返回NaN。
![](https://img-blog.csdnimg.cn/img_convert/88f529805a7728e364463edcdc2d70a1.png)
(2)parseFloat
格式:parseFloat(str) 注:str是一个字符串
注意事项:parseFloat会保留小数部分,一旦遇到错误,只会转换错误之前的部分。如果字符串开 头不是数字直接返回NaN
<script>
var a=parseFloat("555");
var b=parseFloat("555.555");
var c=parseFloat("5张5.55");
var d=parseFloat("hais");
console.log(a);
console.log(b);
console.log(c);
console.log(d);
</script>
![](https://img-blog.csdnimg.cn/img_convert/a55e2786782be4d0d4f92089ad8e2ecf.png)
(3)Number
格式:Number(str) 注:str是一个字符串
注意事项:Number会保留小数部分,但数据一旦有误,结果为NaN
<script>
var a=Number("555");
var b=Number("555.555");
var c=Number("5张5.55");
console.log(a);
console.log(b);
console.log(c);
</script>
![](https://img-blog.csdnimg.cn/img_convert/dcf83f8217cd4b78ff4d14ea227ac58d.png)
(4)用算术运算符
+、-0、*1、/1、%比本身大的数(详细的往下看)
数字转字符串
(1)toString:把变量中的数据转换成字符串
<script>
var a=5;
var b=a.toString();
console.log(b);
console.log(typeof(b));//查看数据类型
</script>
![](https://img-blog.csdnimg.cn/img_convert/c22ce9e358c7b5bec9fb567d3bb71b31.png)
(二)字符串和布尔
字符串转布尔
格式:Boolean(str) 注:str是一个布尔字符串
注意事项:0、null、undefined、""和NaN通过Boolean指令,转换结果为false,其它都是true
<script>
console.log(Boolean(0));
console.log(Boolean(null));
console.log(Boolean(undefined));
console.log(Boolean(""));
console.log(Boolean(NaN));
console.log(Boolean(false));
console.log(Boolean(true));
</script>
![](https://img-blog.csdnimg.cn/img_convert/2367531bde649460a178ce0e30c0edf6.png)
(2)布尔转字符串(toString)
三、运算符
(一)算术运算符
+(加)
(1)加法运算:加号两边都是数字将做加法运算,例如:console.log(3+5);//结果:8
(2)拼接运算:加号两边只要任何一边是字符串将做拼接运算,拼完将成为一个新字符串,
例如:var a="张"+3;console.log(a);//结果:"张3"
(3)类型转换:把字符串类型转换为数字类型
例如:var a=+"5";console.log(typeof(a)); //结果:number
-(减)
(1)减法运算:减号两边都是数字将做减法运算,例如:console.log(3+5);//结果:-2
(2)类型转换:把字符串类型转换为数字类型
例如:var a="5"-0;console.log(typeof(a));//结果:number
*(乘)
(1) 乘法运算:console.log(3*5); //结果:15
(2) 类型转换:把字符串类型转换为数字类型
例如:var a="5"*1;console.log(typeof(a));//结果:number
/(除)
(1) 除法运算:console.log(15/5); //结果:3
(2) 类型转换:把字符串类型转换为数字类型
例如:var a="5"/1;console.log(typeof(a));//结果:number
%(取余)
(1) 除法运算:console.log(15%2); //结果:1
(2) 类型转换:把字符串类型转换为数字类型,除数一定要大于被除数
例如:var a="5"%6;console.log(typeof(a));console.log(a);//结果:number 5
++(自增)
(1)前置++:会先把值自动+1,再返回
例如:var a=10;console.log(++a); //结果:11
返回11,并把a的值+1变成11。
(2)后置++:会先把值返回,再自动+1
例如:var a=10;console.log(a++); //结果:10
先返回10,再把a的值+1变成11
var k=0;console.log(k++ + k+ ++k + k++);//结果:5
k++ | k | ++k | k++ | ||
返回 | 0 | 1 | 2 | 2 | 相加得5 |
k | 1 | 1 | 2 | 3 | 最后k为3 |
--(自减)
(1)前置--:会先把值自动-1,再返回
例如:var a=10;console.log(--a); //结果:9
返回9,并把a的值-1变成9。
(2)后置--:会先把值返回,再自动-1
例如:var a=10;console.log(a--); //结果:10
先返回10,再把a的值-1变成9
var k=5;console.log(k-- + k+ --k + k--);//结果:15
k-- | k | --k | k-- | ||
返回 | 5 | 4 | 3 | 3 | 相加得15 |
k | 4 | 4 | 3 | 2 | 最后k为2 |
(二)比较运算符
> 、 < 、 == 、 >= 、 <=、 != 、 ===
能够对数据进行比较运算,比较的结果为布尔类型,如果成立结果就为true,否则为false
<script>
console.log(3>5);
console.log(3<5);
console.log(3>=5);
console.log(3<=5);
console.log(3!=5);
console.log(3=="3");
console.log(3==="3");
</script>
![](https://img-blog.csdnimg.cn/img_convert/180d71eee205eb25792977bfde2fcea6.png)
注意事项:==只判断内容是否相等
===既要判断内容是否相等,也要判断类型是否相等
=赋值,
(三)逻辑运算符
&&:逻辑与(并且)
两边只要有一边不成立,结果就不成立(false)
只有两边都成立,结果才成立
<script>
console.log(true&&true);
console.log(true&&false);
console.log(false&&true);
console.log(false&&false);
</script>
![](https://img-blog.csdnimg.cn/img_convert/c25a90f1c35d0f153449186bf7e6e604.png)
||:逻辑或(或者)
两边只要有一边成立,结果就成立
只有两边都不成立,结果才不成立
<script>
console.log(true||true);
console.log(true||false);
console.log(false||true);
console.log(false||false);
</script>
![](https://img-blog.csdnimg.cn/img_convert/d8a05a4a0bb08e70ba4c51e30ca8a7e0.png)
!:逻辑非(或者)
以前成立,结果就不成立
以前不成立,结果就成立
只能对布尔类型的数据进行逻辑运算
<script>
console.log(!true);
console.log(!false);
</script>
![](https://img-blog.csdnimg.cn/img_convert/f0503178e7f7f4799fe658208d3f76de.png)
(四)括号运算符
小括号():改变优先级
中括号[]:下标运算
大括号{}:块运算符
(五)赋值运算符
=:把等号右边的赋值给左边的变量名
例如:a=5
如果3=5,将会报错
+=:
<script>
var a = 10;
a += 10;//a+=10相当于a=a+10
console.log(a);
</script>
![](https://img-blog.csdnimg.cn/img_convert/6b4882f065658016ea495fb0f944ce8d.png)
-=:
<script>
var a = 10;
a -= 10;//相当于a=a-10
console.log(a);
</script>
![](https://img-blog.csdnimg.cn/img_convert/5e4f85485846b06590cdd844191706a5.png)
*=:
<script>
var a = 10;
a *= 10;//相当于a=a*10
console.log(a);
</script>
![](https://img-blog.csdnimg.cn/img_convert/e72a0b09e76fb04f3aa28c7d0cfa0c51.png)
/=:
<script>
var a = 10;
a /= 10;//相当于a=a/10
console.log(a);
</script>
![](https://img-blog.csdnimg.cn/img_convert/343579c63759406fa1bd6757e232e380.png)
%=:
<script>
var a = 10;
a %= 10;//相当于a=a%10
console.log(a);
</script>
![](https://img-blog.csdnimg.cn/img_convert/f8e245e24a5a98cb7bf4bfba3cd5cd6f.png)
(六)三目运算符
单目运算符
!、++、--
双目运算符:必须要两个数据才可以进行运算
+、-、*、/
三目运算符:必须要三个数据才可以进行运算
写法:布尔数据?数据1:数据2
原理:先查看布尔数据的结果,如果结果为true,运算结果就是数据1,否则就是数据2
<script>
console.log(3>5?"yes":"no");
</script>
![](https://img-blog.csdnimg.cn/img_convert/023b13379cfde0945fb4cfbe1142759a.png)
四、运算符优先级法则
括号永远最高
赋值永远最低
单目>双目>三目
算术>比较>逻辑
乘除余>加减 逻辑与>逻辑或
优先级相同,从左往右运算
五、表达式
概念:用运算符把数据连起来就称为表达式
特点:每个表达式都有一个值,该值就是运算的结果