JavaScript的数据类型

137 阅读3分钟

JavaScript的数据类型

计算机世界中的万事万物都是数据。

计算机程序可以处理大量的数据,为什么要给数据分类?

1、更加充分和高效的利用内存

2、也更加方便程序员的使用数据

一、数据类型

JS 数据类型整体分为两大类:

(1)基本数据类型

1、number 数字型(即我们数学中学习到的数字,可以是整数、小数、正数、负数。)

注意事项:JS 是弱数据类型,变量到底属于那种类型,只有赋值之后,我们才能确认

Java是强数据类型 例如 int a = 3 必须是整数

2、string 字符串型(通过单引号( '') 、双引号( "")或反引号( ` )包裹的数据都叫字符串,单引号和双引号没

有本质上的区别,推荐使用单引号。)

注意事项:

1.无论单引号或是双引号必须成对使用

2.单引号/双引号可以互相嵌套,但是不以自已嵌套自已(口诀:外双内单,或者外单内双)

3.必要时可以使用转义符 \,输出单引号或双引号

3、boolean 布尔型

1.表示肯定或否定时在计算机中对应的是布尔类型数据。

2.它有两个固定的值 true 和 false,表示肯定的数据用 true(真),表示否定的数据用 false(假)。

4、undefined 未定义型

(1)未定义是比较特殊的类型,只有一个值 undefined。

(2)什么情况出现未定义类型?

只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少【直接】为某个变量赋值为

undefined。

(3)工作中的使用场景:

我们开发中经常声明一个变量,等待传送过来的数据。 如果我们不知道这个数据是否传递过来,此时

我们可以通过检测这个变量是不是undefined,就判断用户是否有数据传递过来。

5、null 空类型

(1)null 表示 值为 空

(2)null 和 undefined 区别:

1)undefined 表示没有赋值

2)null 表示赋值了,但是内容为空

(2)引用数据类型
二、模板字符串

(1)作用

1.拼接字符串和变量

2.在没有它之前,要拼接变量比较麻烦,使用的都是以下方法拼接:

<body>
    <script>
        let userName = prompt("请输入您的姓名:") ;
        let userAge = prompt("请输入您的年龄");
        document.write('大家好,'+'我叫'+userName +',今年' + userAge +'岁了');//比较麻烦,不推荐使用
    </script>
</body>

(2)符号 ``(反引号)

在英文输入模式下按键盘的tab键上方那个键(1左边那个键)

内容拼接变量时,用 ${} 包住变量

 <body>
    <script>
        let userName = prompt("请输入您的姓名:") ;
        let userAge = prompt("请输入您的年龄");
        document.write(`大家好,我叫${userName},今年${userAge}岁了`);//推荐使用
    </script>
</body>
三、检测数据类型

(1)控制台语句经常用于测试结果来使用。

控制台中输出的数字型和布尔型颜色为蓝色,字符串和undefined颜色为灰色

(2) 通过 typeof 关键字检测数据类型

<body>
    <script>
        let num1 = 1
        let String1 = "我爱你"
        let Boolean1 = true
        let buy
        let obj = null
​
        console.log(typeof num1);
        console.log(typeof String1);
        console.log(typeof Boolean1);
        console.log(typeof buy);
        console.log(typeof obj);
    </script>
</body>
四、数据类型的转换

作用:把一种数据类型的变量转换成我们需要的数据类型。

1、隐式转换

(1)某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。

(2)规则:

1)"+"号两边只要有一个是字符串,都会把另外一个转成字符串

2)除了+以外的算术运算符 比如 - * / 等都会把数据转成数字类型

(3)缺点:

转换类型不明确,靠经验才能总结

(4)小技巧:

+号作为正号解析可以转换成Number

<body>
    <script>
        let num0 = '2';
        let num1 = + prompt('输入数字');//在前面加‘+’是为了使prompt(默认string类型)转换成数字类型
        let num2 = + prompt('输入数字');
        let num3 = num0 - 0;//num3为数字类型:+ 号两边只要有一个是字符串,都会把另外一个转成字符串;因为运算符除了‘+’以外的运算符,都可以把数据类型转换成数字类型
        console.log(num1+num2);
    </script>
</body>
2.显式转换
(1)概念:

自己写代码告诉系统该转成什么类型

(2)转换为数字型

1)Number(数据)

1、转成数字类型

2、如果字符串内容里有非数字,转换失败时结果为 NaN(Not a Number)即不是一个数字

3、NaN也是number类型的数据,代表非数字

2)parseInt(数据)

只保留整数(不会进行四舍五入,只是单纯把小数点以及后面的数字删除)

3)parseFloat(数据)

可以保留小数

(3)转换为字符型:

String(数据)

变量.toString(进制)

<body>
    <script>
        //字符串转数字类型
        let num1 = '12'
        let num2 = 'aabb'
        let num3 = prompt('请输入数据');
        num1=Number(num1);
        num2=Number(num2);//要转换成数字类型必须是数字,字母不能转换成数字类型
        num3=parseInt(num3);//转换成整型,去掉小数点后面的数
        let num4=parseFloat(99.999);//转换成浮点型数字类型,保留小数点
        console.log(typeof num1,num2,num3,num4);//NaN表示转换失败
        //数字类型转字符串
        let str = 123;
        let str1 = '12' + str;
        let str2 = String(123);
        let str3 =str.toString();
        console.log(typeof str,typeof str1,typeof str2,typeof str3);
    </script>
</body>

\