1.操作符
1)算数操作符
+加 1+2
-减 3-1
*乘 2*3
/除 10/2
%取余 5%2
2)一元操作符
递增递减操作符号
++
--
var a = 1
a++,(a--) 先赋值,再++(再--)
++a,(--a) 先++(先--),再赋值
赋值运算符
= 将等号右边的值赋值给等号左边的变量
var a = 12
加+
+,将不是Number数据转化为Number类型
-
如果运用数值上时,该数值变为负数
如果运用到非数值上时,先使用+运算符,然后变成负数
3)比较运算符
===(全等) 既要数据类型相同,也要值相同,才会返回true
==(相等) 只要值相同,就会返回true(隐式转换)
>
<
>=
<=
!==(不全等)
!=(不相等)
4)逻辑运算符
逻辑与(并且)&&
同真为真,有假则假
逻辑或(或者)||
有真则真,同假则假
非 !
任何数据类型使用非运算符,都会返回一个布尔类型的值,先转化为布尔类型的值,然后取反
Number
0 false
1 true
String
非空字符串 true
空字符串 false
null false
underfined false
将任何数据类型转化为布尔类型,使用!!
5)三目运算符
条件?语句一:语句二 若条件为真执行语句一,为假则执行语句二
2.数据类型的转换
其他数据类型转化为String
1)toString()
除了null和underfined,其他三种基本类型都有toString方法
如果这个值为number类型,那么toString可以接受一个参数(2,8,10,16),默认转化为十进制
2)String()包装器,转换器,其他任意基本数据类型
3)拼接空字符串
var a = 123
var s = a + ''
其他数据类型转化为布尔类型
1)Boolean()包装器
2)使用两次逻辑非(!!)
其他数据类型转化为数字类型
1)Number()包装器,转换器
如果转换的值是null,undefined,boolean,number
Number(true); //1
Number(false); //0
Number(null); //0
Number(undefined); //NaN
Number(10); //10 如果是数字值,原样输出
如果转换的值是string
Number("123"); //如果仅包含数值,转换为对应的数值
Number("234.1"); //解析为对应的小数
Number("+12.1"); //首位为符号位,其余为为数值,转换为对应的数值
Number("1+2.3"); // NaN 符号位出现在其他位置,解析为NaN
Number("0xa"); //10 如果仅包含十六进制格式,转为为对应的十进制的值
Number("010"); //10【注意】不会当做八进制被解析,结果为10。
Number(""); // 0 空字符串被转换为0
Number("123ac"); // NaN 包含其他字符: NaN
Number(“ 12 "); //12
2)parseInt() 将任意数据类型转化为Number(整数类型)
3)parseFloat() 将任意数据类型转化为number(浮点型)
注意
加 +(m+n)
当m,n都不为string,object的时候,先将m,n转化为number,然后进行计算
当m,n有一个为string的时候,将m,n都转化为string,然后拼接
3.流程控制语句
分支语句
if(条件){
代码块
}
else{
代码块
}
if(条件){
代码块
}
else if(条件){
代码块
}
else{
代码块
}
switch(gender){
case '男':
console.log('男生');
break;
case '女':
console.log('女生');
break;
default:
console.log('不男不女')
}
每一个case里面都应该写一个break,最后一个case之后写一个default
循环语句
循环语句必须具有的三要素
计数器,循环结束条件,迭代器
for
for(计数器;循环结束条件;迭代器){
循环体
}
while
计数器
while(循环结束条件){
循环体
迭代器
}
do while
计数器
do{
循环体
迭代器
}while(循环结束条件)
while和do while循环的区别
while循环可能一次也不执行,但do while循环的循环体最少执行一次