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>
\