第一部分、数据类型
1.变量的数据类型
JavaScript是一种弱类型语言,不用提前声明变量的数据类型。在程序的运行过程中,变量的数据类型会被自动确定。
2.数据类型分类
JavaScript中的数据类型可分为两大类,基本数据类型和复杂数据类型(也称引用数据类型)。
3.数字型
JavaScript中的数字型可以用来保存整数或浮点数(小数)。
var age=10; //整数
var pi=3.14; //浮点数(小数)
(1)范围:数字型的最大值和最小值
- 最大值:Number.MAX_VALUE,输出结果:1.7976931348623157e+308
- 最小值:Number.MIN_VALUE,输出结果:5e-324
(2)数字型的3个特殊值:Infinity和- Infinity 和NaN
- Infinity(无穷大) :如Number.MAX_VALUE*2
- -Infinity(无穷小) :如-Number.MAX_VALUE*2
- NaN(非数值): 如’abc’–100
- isNaN:用来判断一个变量是否为非数字的类型,返回值为true表示非数字,false表示是数字
4.字符串型
字符串是指计算机中用于表示文本的一系列字符,在JavaScript中舒勇单引号或双引号来包裹字符串。
var str1 = '单引号字符串';
var str2 = "双引号字符串";
(1)单、双引号的嵌套:
- 在单引号字符串中可以直接书写双引号
- 在双引号字符串中也可以直接书写单引号
(2)转义符:
转义符:在字符串中使用换行、Tab等特殊符号时,可以用转义符来进行转义,转义符以“\”开始。常见转义符见下表。
(3)字符串的长度
字符串长度:字符串是由若干字符组成的,这些字符的数量就是字符串的长度。通过字符串的length属性可以获取整个字符串的长度。
var str1="program";
console.log(str1.length); //获取str1的长度
(4)访问字符串中的字符
访问字符串中的字符:字符串可以使用“[index]”语法按照index(索引)访问字符,index从0开始,一直到字符串的长度减1,如果超过了index最大值,会返回undefined。
var str1="program";
console.log(str1[0]); //访问字符串的第1个字符
console.log(str1[3]); //访问字符串的第4个字符
console.log(str1[10]); //访问字符串的第11个字符(字符串的溢出)
(5)字符串的拼接
字符串拼接:多个字符串之间可以使用“+”进行拼接,如果数据类型不同,拼接前会把其他类型转成字符串,再拼接成一个新的字符串。
console.log(12 + 14); //12+14
console.log("12" + 14); //将12与14拼接
console.log("12" + "14"); //将12与14拼接
console.log("a" + "b"); //将a与b拼接
console.log("a" + 12); //将a与12拼接
运行结果如下:
5.布尔型
布尔型通常用于逻辑判断,它有两个值:true和false,表示事物的“真”和“假”。在运算时,true视为1,false视为0。
console.log(true);
console.log(false);
console.log(true + 1);
console.log(false + 1);
6.undefined和null
(1)undefined
如果一个变量声明后没有赋值,则变量的值就是undefined。
var age;
console.log(age);
(2)null
var str1=""; //空串
var str2=null; //空值
console.log(str1);
console.log(str2);
console.log(null + 1); //在运算中,null视为0
7.数据类型检测
可以使用typeof运算符进行数据类型的检测。
var n1=25;
console.log(typeof n1); //输出n1的数据类型
console.log(typeof n1 === "number"); //检测n1是否为数字类型
第二部分、数据类型转换
1.转换成字符串型
(1)利用“+”拼接字符串(最常用的一种方式)
console.log("a" + 12);
(2)利用toString()转换成字符串
- null和undefined不能转换
- 传入一个参数可以将数值型数据转换成对应的数制
var t1 = 10;
console.log(t1.toString()); //将数字型转换成字符串类型
console.log(t1.toString(2)); //将10转换为2进制
利用String()转换成字符串
String类进行转换:是JavaScript的内置类,可以直接使用。
var str = new String("湘潭大学");
console.log(str);
2.转换为数字型
(1)将字符串转换成整数:parseInt()
var temp = '12345'; //定义字符串'12345'
console.log(typeof '12345'); //检测temp的类型
var k = parseInt(temp); //将temp转换成数字型
console.log(k);
console.log(typeof k); //检测转换后的类型
(2)将字符串转换为浮点数:parseFloat()
var temp = "3.14";
var k = parseFloat(temp);
console.log(k);
console.log(typeof k);
(3)使用Number()将字符串转为数字型
var temp = 3.14;
var t = Number(temp);
console.log(typeof t);
3.转换为布尔型
转换为布尔型使用Boolean(),在转换时,代表空、否定的值会被转换为false,如空字符串、0、NaN、null和undefined,其余的值转换为true。
var m = ""; //空字符串
var n = "123";
console.log(Boolean(m));
console.log(Boolean(n));
第三部分、运算符
1.算数运算符
算术运算符用于对两个变量或值进行算术运算,与数学上的加、减、乘、除类似,常用的算术运算符如下。
注意事项:
- 进行四则混合运算时,运算顺序要遵循数学中“先乘除后加减”的原则
- 在进行取模运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关
console.log(10%-3); //结果是1
console.log(-10%3); //结果是-1
- 在开发中尽量避免利用浮点数进行运算,因为有可能会因JavaScript的精度导致结果的偏差
- 使用“+”和“-”可以表示正数或负数
2.递增和递减运算符
使用递增(++)、递减(–)运算符可以快速地对变量的值进行递增和递减操作,它属于一元运算符,只对一个表达式进行操作。
-前置递增(递减)运算符:递增和递减运算符写在变量前面,返回的是计算后的结果
- 后置递增(递减)运算符:递增和递减运算符写在变量后面,返回的是计算前的结果
- 递增和递减运算符的优先级高于“+”“-”等运算符
var a=5,b=3,k;
// k = ++a*b; //先加1,后运算,结果k=18
// k = a++*b; //先使用,后加1,结果k=15
console.log("a=",a);
console.log("k=",k);
3.比较运算符
比较运算符用于对两个数据进行比较,其结果是一个布尔值,即true或false ,常用的比较运算符及用法见下表。
注意:== 和 ===的区别
var k1 = "123"; //字符串类型
var k2 = 123; //number类型
console.log("==的结果:",k1 == k2); //只看数值,结果为true
console.log("===的结果",k1 === k2); //数值与类型都看,结果为false
4.逻辑运算符
(1)&&
&&:逻辑与, 表达式1 && 表达式2,两个表达式都为true时,结果为true
- '&&'运算中的短路现象:当"表达式1"为假时,不运算"表达式2"
var a=10,b=5,k;
k = a<6 && (--b<3);
console.log("k=",k);
console.log("b=",b); //a<6为假,运算结果为false,不进行--b的运算,b=5
(2)||
||:逻辑或, 表达式1 || 表达式2,两个表达式有一个为true,结果为true
- '||'运算中的短路现象:当"表达式1"为真时,不运算"表达式2"
(3)!
!:逻辑非(取反),单目运算符, !表达式
5.赋值运算符
常用的逻辑运算符及示例见下表。
6.位运算符
位运算符,用来对数据进行二进制运算,将参与运算的操作数视为由二进制(0和1)组成的32位的串。
- &:按位’与’,两个对应的二进制位都为1时,结果为1,否则为0
- |:按位’或’,两个对应的二进制位有一个为1时,结果为1
- ^:按位’异或’,两个对应的二进制位相同为0,不同为1
7.三元运算符
三元运算符是一种需要三个操作数的运算符,运算的结果根据给定条件决定。
条件表达式? 表达式1:表达式2
语法说明:先求条件表达式的值,如果为true,则返回表达式1的执行结果;如果条件表达式的值为false,则返回表达式2的执行结果。