js的八种数据类型
- 基本数据类型:
Number、String、Boolean、undefined、null - 引用数据类型:
object、数组array、函数function - ES6新增的两种类型:
Symbol、Bigint
js的算术运算符
1.当加号+ 两边有字符串形式, 则进行字符串拼接
console.log("num"+100); //num100
console.log(100+"undefined"); //100undefined
- 减(-)、乘(*)、除(/)、取余(%)转换为数值型,进行运算,不能转换数值的为NaN
减法:
console.log(100-"100")//0
console.log(true-"100")//-99,把true转换成1
console.log(true - "aa"); //NaN
乘法:
undefined不能转换为数值型:
console.log(1*false); //0 false转为0
console.log(3*true); //3 true转为1
console.log(1*undefined); //NaN undefined不能转换为数值型
console.log(2*"3"); //6 转为数值3
console.log(2*"a"); //NaN`在这里插入代码片
除法:
console.log(100/true); //100
console.log(false/100); //0
console.log(100/"aa"); //NaN
console.log(100/'4'); //25
取余:
console.log(100%'3'); //1
console.log(100%true); //0
js的逻辑运算符 (会得到一个结果)
逻辑运算符>算术运算符,先执行逻辑运算符再执行算术运算符
- !(逻辑非):取反
console.log(!true + 1); //1
console.log(!(true+1)); //false
console.log(!(1+1)); //false
- &&(逻辑与):并且
当所给条件都成立时,才得到真值。
var age = 18;
var sex = '女';
console.log(age == 18 && sex == '女' ? true :false); //true
- ||(逻辑或):或者
当所给条件只要有一个成立,就能得到真值。
var age = 18;
var sex = '女';
console.log(age == 18 || sex == '男' ? true : false); //true
js的比较运算符 (一定会得到一个布尔值)
<,>,=,>=,<=,==,!= ,!= =,= ==
==和 ===的区别:
- 使用双等号==时,如果等号左右两边的类型不一样就会进行强制转换,再进行比较;
- 使用三等号===时,既要比较值的大小,又要比较两边的类型是否一样,如果值的大小和类型都一样,返回true,缺一不可,否则,返回false
console.log(100 == '100'); //true
console.log(1 == true); //ture
console.log(100 === '100'); //false
console.log(100 === 100); //true
js的隐式转换
- 在上述过程中讲了算术运算符、双等号会进行隐式转换。除此之外还有一些其他隐式转换,在这里做个介绍及总结。
2. 转为字符串String的转换规则:
当有加号的时候只要有字符串形式的就将其转为字符串并进行字符串拼接
(1)基本类型的转换
console.log(100+"100") //100100
(2)引用类型的转换
数组会返回数组本身;
对象会返回对象本身
原理:当进行隐式转换时,如果是数字类型,进行toString方法,在进行valueOf()
如果是对象,则先进行valueOf()方法,在进行toString()