JS补充
console.log(null ==undefined); //ture
console.log(typeof null); //object
#### number
NaN //当无法计算结果时用NaN表示 not a number
NaN的数据类型是number类型
涉及到NaN的计算都会返回NaN
NaN不与任何值相等,包括它自己
ES中有一个专门用来判断是否为非数的函数isNaN(),如果是数字返回false,不是数字返回true
```js
console.log(isNaN(10)); //false
console.log(isNaN(NaN)); //true
console.log(isNaN("red")); //true
console.log(isNaN("10")); //false
isNaN()在做判断前会对传进去的值做隐式转换,就是使用的Number()函数做隐式转换
boolean
它的值为true和false,任何数据类型都可以转化为boolean类型
let n =5
console.log(n,typeof n);// 5,number
console.log(Boolean(n),typeof Boolean(n));// true,boolean
会返回boolean中false的情况
-
空字符串(“ ”),包含' '、"" 字符串模板``
-
0
-
NaN
-
false
-
null
-
undefined
string
-
在JS中字符串不区分''、"",例如“abc”或者'abc'或者
abc。单双引号只是一种表达形式,不是字符串的一部分 -
单双引号不可互相嵌套'hello world"
let str ="java"
str = str +"script"
console.log(str); //javascript字符串模板
ES6新添加了字符串模板,使用的是2个反引号``
-
支持多行文本
-
可以进行变量的解析,需要将变量放进${变量}中
let name ="zengyu",age = 26;
let str = `我叫${znegyu}我今年${age}`;
console.log(str); //我叫zengyu我今年26岁数据类型转换
隐式的转换是系统内部自动发生的转换,一般发生于不同的数据类型进行运算时
console.log('11'<4); //false
if(1){
console.log("ok"); //ok
}
console.log("2"*5); //10
-
不同数据类型进行比较
-
不同数据类型进行运算
-
对非布尔值求布尔值
显式类型转换
即强制进行数据类型转换
-
parselnt()取整
-
parseFloat()取小数点
-
Number()取数字
-
String()取字符串
-
Boolean()取布尔值(true false)
console.log(parselnt(123)); //123
console.log(parselnt("123abc"));//123
console.log(parselnt("abc123"));//NaN
console.log(parselnt(null));//NaN
console.log(parselnt(undefined)); //NaN显式类型转换Number
会尽可能将值转换为数字
-
整体转换
-
如果是布尔值,true 为 1 false 为 0
-
如果是数字,就返回一个数字
-
如果含有非数、undefined转为NaN
-
如果是空字符串、null 转为 0
console.log(Number("123.2.3")); //NaN
console.log(Number("123abc")); //NaN
console.log(Number("")); //0
console.log(Number("false")); //0
console.log(Number("undefined")); //NaN
console.log(Number("null")); //0显式类型转换 String()
转换为字符串,关于原始类型值的转换规则
-
数值:转为相应的字符串
-
字符串:原来的值
-
布尔值:true转为“true”,false 转为 “false”
-
undefined:转为“undefined”
-
null:转为“null”
let a=5;
console.log(String(a)); //"5"
a=true;
console.log(String(a)); //"true"
a=undefined;
console.log(String(a)); //"undefined"
a=null;
console.log(String(a)); //"null"显式类型转换 Boolean
将任意类型的变量转为布尔值,以下值会被转换为boolean里的false
-
单双引号的空字符串''、""、空的字符串模板``
-
0
-
NaN
-
false
-
null
-
undefined
let test1 =!!""; //false
let test2 =!!"abc"; //true
let test3 =!!null; //false
let test4 =undefined; //false
let test5 =!!NaN; //false
浙公网安备 33010602011771号