JS补充

null(空)

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

 

posted @ 2021-06-27 13:10  彧老魔  阅读(33)  评论(0)    收藏  举报