一、数据类型简介
1.为什么需要数据类型
(1)在计算机中,不同的数据所需占用的储存空间数不同的,为了便于把数据分成所需内存大小不同的数据,充分利用储存空间,于是定义了不同的数据类型。
(2)简单来说,数据类型就是数据的类别型号。比如姓名“张三”,年龄18 这些数据的类型是不一样的
2.变量的数据类型
(1)变量是用来存储值的所在处,它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中,JavaScript是一种弱类型或者说动态语言。这意味着不用提前声明变量的类型,在程序运行过程中,类型被自动确定。
(2)var age = 10; 这是一个数字型 var areyouok = '是的'; 这是一个字符串
(3)在代码运行时,变量的数据类型是由JS引擎根据=右边变量值的数据类型来判断的,运行完毕后,变量就确定了数据类型
(4)Javascript拥有动态类型,同时也意味着相同的变量可用作不同的类型
1)var x = 6; x为数字 var x = 'bull'; x为字符串
3.数据类型的分类
(1)JS把数据类型分为两类
1)简单的数据类型(Number,String,Boolean,Undefined,Null)
2)复杂数据类型(object)
二、简单数据类型
1.JavaScript中的简单数据类型及其说明如下
(1)基本数据类型
简单数据类型 | 说明 | 默认值 |
Number | 数字型,包含整型值和浮点型值,如20、0.21 | 0 |
Boolean | 布尔值类型,如true、false等于0和1 | false |
string | 字符串类型,如“张三”注意JS里面,字符串都带引号 | “” |
Undefined | var a;声明了变量a但没有给值,此时a=undefined | undefined |
Null | var a = null; 声明了变量a为空值 | nul |
2.数字型
(1)JavaScript数字类型即可以用来保存整数值,也可以保存小数(浮点数)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var num = 10; //整数 数字型var PI = 3.14; //小数 数字型</script>
</head>
<body></body>
</html>
(2)数字型进制
1)最常见的进制有二进制、八进制、十进制、十六进制。
1.八进制数字序列范围:0~7
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>// 八进制 0~7 我们程序里面数字前面加0 表示八进制var num = 07;console.log(num); // 7var num1 = 010;console.log(num1); // 010 八进制 转化为 10进制 就是 8var num2 = 013;console.log(num2); // 11</script>
</head><body></body></html>
2.十六进制数字序列范围:0~9以及A~F
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>// 十六进制 0 ~ 9 a~f #ffffff 数字前面加 0x 表示16进制var num3 = 0x9console.log(num3);var num4 = 0xbconsole.log(num4);</script>
</head><body></body></html>
3.现阶段我们只需要记住,在JS中八进制前面加0,十六进制前面加0x
(3)数字型范围
1)JavaScript中数值的最大和最小值
1.最大值:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>// 数字型的最大值console.log(Number.MAX_VALUE);</script>
</head><body></body></html>
2.最小值:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>// 数字型的最小值console.log(Number.MIN_VALUE);</script>
</head><body></body></html>
(4)数字型三个特殊值
1)infinity,代表无穷大,大于任何数值
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>// 无穷大console.log(Number.MAX_VALUE * 2); // Infinity 无穷大</script>
</head><body></body></html>
2)-infinity,代表无穷小,小于任何数值
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>// 无穷小console.log(-Number.MAX_VALUE * 2); // -Infinity 无穷小</script>
</head><body></body></html>
3)NaN,Not a number,代表一个非数值
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>// 非数值console.log('ljh' - 100); // NaN</script>
</head><body></body></html>
(5)isNaN
1)用来判断一个变量是否为非数字的类型,返回true或者flase
isNaN(x)
x是数字、返回 false
x不是数字、返回 true
3.字符串型String
(1)字符串型可以是引号中的任意文本,其语法为双引号“”和单引号‘’
(2)因为HTML标签里面的属性使用的是双引号,JS这里我们更推荐使用单引号
(3)JS可以使用单引号嵌套双引号,或用双引号嵌套单引号(外双内单、外单内双)
(4)字符串转义符
1)类似HTML里面的特殊字符,字符串中也有特殊字符,我们称之为转义符
2)转义符都是\开头的,常用的转义符及其说明如下
转义符 | 解释说明 |
\n | 换行符,n是newline的意思 |
\\ | 斜杠\ |
\' | ' 单引号 |
\" | " 双引号 |
\t | tab缩进 |
\b | 空格,b是blank的意思 |
(5)字符串长度
1)字符串是由若干字符组成的,这些字符的数量就是字符串的长度。通过字符串的length属性可以获取整个字符串的长度。
(6)字符串拼接
1)多个字符串之间可以使用+进行拼接,其拼接方式为字符串+任何类型=拼接之后的新字符串
2)拼接前会把与字符串相加的热河类型转化成字符串,在拼接成一个新的字符串
3)+号总结口诀:数值相加,字符相连
(6)字符串拼接加强
1)我们经常会将字符串和变量来拼接,因为变量可以很方便地修改里面的值
2)变量是不能添加引号的,因为加引号的变量会变成字符串
3)如果变量两侧都有字符串拼接,口诀“引引加加”,删掉数字,变量写加中间
4.布尔型Boolean
(1)布尔类型有两个值:true和false,其中true表示真(对),而false表示假(错)。
(2)布尔类型和数字型想家的时候,true的值为1,false的值为0。
5.Undefined和Null
(1)一个声明后没有被赋值的变量会有一个默认值undefined(如果进行相连或者相加时,注意结果)
(2)一个声明变量给null值,里面存的值为空(学习对象时,我们继续研究null)
三、获取变量数据
1.typeof可用来获取检测变量的数据类型
2.字面量
(1)字面量是在源代码中一个固定值的表示法,通俗来说,就是字面量表示如何表达这个值。
1)数字字面量:8,9,10
2)字符串字面量:‘ljh’ “hsl”
3)布尔值字面量:true、false
四、数据类型转换
1.什么是数据类型转换
(1)使用表单、prompt获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,而需要转换变量的数据类型,通俗来说,就是把一种数据类型的变量转换成另外一种数据类型。
(2)我们通常会实现3种方法的转换
1)转化为字符串类型
2)转化为数字型
3)转化为布尔型
2.转化为字符串
(1)
方式 | 说明 | 案例 |
toString | 转成字符串 | var num = 1; alert(num.toString()) |
String()强制转化 | 转成字符串 | var num = 1; alert(String(num)) |
加号拼接字符串 | 和字符串拼接的结果都是字符串 | var num = 1; alert(num+"zfc"); |
、
(2)toString()和String使用方式不一样。
(3)三种转换方式,我们更喜欢用第三种加号拼接字符串转换方式,这一种也称之为隐式转换。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>// 1. 把数字型转化为字符串型 变量.toString()var num = 586;var str = num.toString();console.log(str);console.log(typeof str);// 2. 我们利用 String(变量)console.log(String(num));// 3. 利用 + 拼接字符串的方法实现转化效果 隐式转换console.log(num + '');</script>
</head>
<body></body>
</html>
3.转化为数字型(重点)
(1)
方式 | 说明 | 案例 |
parselnt(String)函数 | 将string类型转成整数数值型 | parselnt('78') |
parseFloat(string)函数 | 将string类型转成浮点数值型 | parsrFloat('78.21') |
Number()强制转换函数 | 将string类型转化为数值型 | Number('12') |
js 隐式转换(- * /) | 利用算术运算隐式转换为数值型 | '12' - 0 |
1)注意parseInt和parseFloat单词的大小写
2)隐式转换是我们在进行算数运算的时候,JS自动转换了数据类型
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>var age = prompt('请输入你的年龄');// 1. parseInt (变量) 可以把 字符型的转化为数字型的 得到的是整数console.log(parseInt(age));console.log(parseInt('3.14')); // 3 取整数console.log(parseInt('120px')); // 120 会去掉后面的pxconsole.log(parseInt('rem120px')); // NaN 转化为数字型前面不能有字母// 2. parseFloat (变量) 可以把 字符型的转化为数字型 得到小数 浮点数console.log(parseFloat('3.14')); // 3.14console.log(parseFloat('120px')); // 120 会去掉后面的pxconsole.log(parseFloat('rem120px')); // NaN 转化为数字型前面不能有字母// 3. 利用Number(变量)var str = '704';console.log(Number(str));console.log(Number('7.4'));// 4.利用了算数运算 - / * 隐式转换var str1 = '586'console.log(str1 - 0);console.log('999' * 1);console.log('666' / 1);</script>
</head>
<body></body>
</html>
4.转换为布尔型
(1)
方式 | 说明 | 案例 |
Boolean()函数 | 其他类型转成布尔值 | Boolean('true'); |
(2)代表空、否定的值会被转换为false,如"、0、NaN、null、undefined
(3)其余值都会被转换为true、
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script>console.log(Boolean('')); // falseconsole.log(Boolean(NaN)); // falseconsole.log(Boolean(0)); // falseconsole.log(Boolean(undefined)); // falseconsole.log(Boolean(null)); // falseconsole.log('---------------------');console.log(Boolean(123)); // trueconsole.log(Boolean('ljh')); // true</script>
</head>
<body></body>
</html>