3--4.数据类型和数据类型转换

119 阅读2分钟

3. 数据类型

3.1原始类型(基础类型5)

    Number 数值

     整数  二进制、十进制、八进制、十六进制

     小数(浮点数)

    String  字符串 

     由文本字符组成,单引号或双引号(单引号里面放双引号,双引号里面放单引号),特殊字符需要转义(转义字符:\n 换行  \t  tab  \--->\  '--->' "--->")

    Boolean 布尔值 

     true ---> 1    false ---> 0

    Null  空、无

    Undefined

     含义:"不存在该数据"

     声明变量未赋值,对象属性不存在

3.2 引用类型(内置对象 11)

    Number(数值)、String(字符串)、Boolean(布尔)、Array(数组)、Error(错误)、Math(数学)、Date(日期)、RegExp(正则)、Function(函数)、Object(对象)、Global(全局)

4. 数据类型转换 

4.1隐式类型转换 ("" ---> 0, 0 == "")

    数字+字符串: 数字转换为字符串 

    数字+布尔值: true转换为1,false转换为0

    字符串+布尔值: 布尔值转换为字符串true或false 

    布尔值+布尔值: 布尔值转换为数值1或0  

    "+"一个计算(相加,数值),一个拼接(字符串)

    字符串与任何内容相加都是字符串(+)

4.2 typeof(内容)/typeof空格内容  返回的数据类型(6)

    typeof 返回的结果 string(字符串)

    值: "number" (原始类型 number,NaN)

         "string"  (原始类型 string) 

         "boolean"  (原始类型 boolean) 

         "undefined"  (原始类型 undefined) 

         "object"  (剩下的10个内置对象+null) 

         "function"  (function 对象)

4.3 强制类型转换 

    1.toString()  转换称为字符串 

     var num = 100;

     var str = num.toString();

    2. parseInt() 转化成为整数(只取整数部分,字符串的开头是数值和(+/-)加数值,都可以转化为数值,其他都转化为NaN(不是数字))

     var numa = 100.89675;

     console.log(parseInt(numa)); // 100 

     var stra = "100.00786hahahahahaha";

     console.log(parseInt(stra));  // 100

    3. parseFloat() 转换成为浮点数(取整数部分和小数部分,字符串的开头是数值和(+/-)加数值,都可以转换为数值,其他都转化NaN(不是数字))

     var stra = "100.00786hahahaha";

     console.log(parseFloat(stra)); 

    4. Number() 转化成为数值(相当于隐式类型的自动转化 "9a" ---> Number("9a")) ---> (string 像数值 ---> 数字,不是就是NaN(不是数字))

    5. isNaN() 判断是不是数字;是数字false,不是数字true 

     console.log(isNaN("hahaha"));  // true 

     console.log(isNaN(100)); // false 

     console.log(isNaN("5a")); // true 

     console.log(isNaN("+5")); // "+5" ---> 5  false 

    NaN与任何能容忍计算结果都是NaN(拼接除外)

     var sum = "hahaha"+NaN; // 拼接 

     console.log(sum); // hahahaNaN 

     var sum2 = 100 + NaN; // 计算 

     console.log(sum2); // NaN 

    NaN不等于任何内容,包括它自己 

     console.log(NaN === NaN); // false 

     console.log(NaN == NaN); // false