美文网首页JavaScript
JavaScript核心 数据类型

JavaScript核心 数据类型

作者: h2coder | 来源:发表于2021-07-04 18:53 被阅读0次

    介绍

    • 数据类型指的就是字面量的类型,在JS中有6种数据类型
      • String 字符串
      • Number 数值
      • Boolean 布尔值
      • Null 空值
      • Undefined 未定义
      • Object 对象
    • 其中,String、Number、Boolean、Null、Undefined、Object属于基本数据类型,而Object属于引用数据类型

    String 字符串

    • 在JS中,字符串需要使用引号来引起来
    • 使用双引号或单引号都可以,但是不要混着用
    • 引号不能嵌套,双引号不能放双引号,单引号不能放单引号
    var str = "hello";
    //var str = 'hello';
    str = '我说:"今天天气真不错"';
    

    转义符

    • 在字符串中,我们可以使用\作为转义字符,当表示一些特殊符号时,可以使用\进行转义。
      • " 表示"
      • ' 表示'
      • \n 表示换行
      • \t 制表符,相当于Tab键
      • \ 表示\
    var str = '我说:\"今天天气真不错\"';
    
    //换行符:\n
    str = '我说:\"今天\n天气真不错\"';
    
    //制表符:\t
    str = '我说:\"今天\t天气真不错\"';
    
    //输出\,自己转义自己即可
    str = "\\";
    
    //输出变量str
    alert(str);
    
    //输出字面量 字符串str
    alert("str");
    
    var str2 = "hello";
    str2 = "你好";
    str2 = 3;
    

    Number 数值

    • 在JS中,所有的数值都是Number类型,包括整数、浮点数(小数)
    //数字
    var a = 123;
    a = 456.789;
    
    //这个是字符串
    var b = "123";
    
    • JS中,可以使用运算符typeof,来检查一个变量的类型
    • 语法:typeof 变量
    • 检查字符串时,返回string,检查数值时,返回number
    //number
    console.log(typeof a);
    //string
    console.log(typeof b);
    

    最大值、最小值

    • JS中,可以表示的最大值和最小值
      • Number.MAX_VALUE,数字的最大值,:1.7976931348623157e+308
      • Number.MIN_VALUE,大于0的最小的最小值:5e-324
    //最大值,1.7976931348623157e+308
    var a = Number.MAX_VALUE;
    //最小值,5e-324
    var b = Number.MIN_VALUE;
    

    正无穷、负无穷

    • 如果使用Number表示的数字,超过了最大值,则会返回一个Infinity
      • Infinity:表示正无穷
      • -Infinity:表示负无穷
      • 使用typeof检查Infinity,也会返回number
    //正无穷,Infinity
    var a = Number.MAX_VALUE * Number.MAX_VALUE;
    //负无穷,-Infinity
    var b = -Number.MAX_VALUE * Number.MAX_VALUE;
    //number
    typeof(Number.MAX_VALUE * Number.MAX_VALUE);
    

    NaN

    • NaN是一个特殊的数字,表示Not a Number
    • 使用typeof检查一个NaN,也会返回number
    //非数字,NaN 是一个特殊的数字,表示Not a Number
    var a = "abc" * "bcd";
    a = NaN;
    console.log(a);
    //number
    typeof(NaN);
    

    运算精度问题

    • 在JS中,整数的运算,基本可以保证精准
    var c = 1865789 + 7654321;
    console.log(c);
    
    • 如果使用JS进行浮点数运算,可能得到一个不精准的结果。所以千万不要使用JS,进行对精确度要求较高的运算
    var c = 0.1 + 0.2;
    console.log(c);
    

    Boolean 布尔值

    • 布尔值,只有2个,主要用来做逻辑判断
      • true,表示真
      • false,表示假
    • 使用typeof检查一个布尔值时,会返回boolean
    var bool = true;
    //true
    console.log(bool);
    //boolean
    console.log(typeof bool);
    

    Null和Undefined

    • Null
      • Null类型的值,只有一个,就是null
      • null这个值专门用来表示一个为空的对象
      • 使用typeof检查一个null值时,会返回object
    var a = null;
    console.log(a);
    //object
    console.log(typeof a);
    
    • Undefined
      • Undefined(未定义)类型的值只有一个,就是undefined
      • 当声明一个变量,但是并不给变量赋值时,它的值就是undefined
      • 使用typeof检查一个undefined时,返回undefined
    var b;
    //undefined
    console.log(b);
    //undefined
    console.log(typeof b);
    

    强制类型转换

    • 指将一个数据类型,强制转换为其他类型
    • 类型转换,主要将其他数据类型,转换为 String Number Boolean

    将其他的数据类型,转换为String

    • 方式一
      • 调用被转换类型的toString()方法,该方法不会影响原变量,它会将转换的结果返回
      • null和undefined,这2个值,没有toString()方法,如果调用它们的方法,会报错
    //方式一:数值转字符串
    var a = 123;
    a = a.toString();
    
    //布尔值转字符串
    a = true;
    a = a.toString();
    
    a = null;
    //a = a.toString();//报错
    
    a = undefined;
    //a= a.toString();//报错
    
    • 方式二
      • 调用String的()函数,并将要转换的数据作为参数传递给函数
      • 使用String()函数,做强制类型转换时:
        • 对于Number和Boolean的,对它们做转换时,实际上就是调用了toString()方法
        • 但是对于null和undefined,就不会调用toString()方法
          • 它会将null,转换为"null"字符串
          • 将undefined,转换为"undefined"字符串
    //方式二:调用String()函数,来将a转换为字符串
    var a = 123;
    a = String(a);
    
    a = null;
    a = String(a);
    
    a = undefined;
    a = String(a);
    
    console.log(typeof a);
    console.log(a);
    

    将其他的数据类型,转换为Number

    • 方式一
      • 使用Number()函数
      • 字符串 --> 数字
        • 字符串转数字,如果是纯数字的字符串,则直接将其转换为数字
        • 如果字符串中有非数字的内容,则转换为NaN
        • 如果字符串是一个空串,或者全都是一个空格的字符串,则转换为0
      • 布尔值 --> 数字
        • 1.true转换为1,false转换为0
      • null -> 数字 0
      • undefined --> 数字 NaN
    //字符串转数据
    var a = "123";//纯数字,转换为123
    //a = "123abc";//内容中有非数字,转换为NaN
    //a = "";//是空串,转换为0
    //a = "   ";//都是空格,转换为0
    
    //布尔值转数据
    //a = true;//true转换为1,false转换为0
    
    //null转数字
    a = null;
    a = Number(a);//null转换为0
    
    //undefined转数字
    a = undefined;
    a= Number(a);//undefined转换为NaN
    
    a = Number(a);
    console.log(a);
    
    • 方式二
      • 这种方式专门用来对付字符串
      • parseInt(),把一个字符串转换为一个整数
      • parseFloat(),把一个字符串转换为一个浮点数
    var a = "123px";
    a = "b123";//第一个就不是数字,NaN
    a = "123a456";//中间有英文,只取前边的部分,123
    a = "123.567a999";//有小数点,只取小数点前的部分(整数),123
    
    /**
    * 字符串转整数
     * parseInt(),可以将一个字符串中有效的整数内容取出来,转换为Number
     *
     * 字符串转小数
     * parseFloat(),作用和parseInt()类似,不同的是它可以获取有效的小数
     */
    a = parseInt(a);
    
    a = "123.456px";//希望取出来是浮点型,使用parseFloat(),123.456
    a = "123.456.789px";//123.456,后面第二个点之后都不要了,因为不是有效的了
    a = parseFloat(a);
    
    /**
    * 布尔型转数字
     * 如果对非String,使用parseInt()或parseFloat()
     *  它会先将其转换为String,然后再操作,所以才会转换为NaN
     */
    a = true;
    a = parseInt(a);
    
    //小数取整
    a = 198.23;
    a = parseInt(a);//198,对小数取整的一种方式
    
    //number
    console.log(typeof a);
    //198
    console.log(a);
    

    将其他的数据类型转换为Boolean

    • 使用Boolean()函数
      • 数字 ---> 布尔
        • 除了0和NaN,其余的都是true
      • 字符串 ---> 布尔
        • 除了空串,其余的都是true
      • null和undefined都会转换为false
      • 对象也会转换为true
    //数字转布尔值
    var a = 123; //true
    a = -123; //true
    a = 0; //false
    a = Infinity; //true
    a = NaN; //false
    
    //调用Boolean()函数来将a转换为布尔值
    a = Boolean(a);
    
    //空串转布尔值
    a = " ";//false
    a = Boolean(a);
    
    //null转布尔值
    a = null;//false
    a = Boolean(a);
    
    //undefined转布尔值
    a = undefined;//false
    a = Boolean(a);
    
    console.log(typeof a);
    console.log(a);
    

    相关文章

      网友评论

        本文标题:JavaScript核心 数据类型

        本文链接:https://www.haomeiwen.com/subject/vtkvultx.html