数据类型
1、变量的数据类型
JS是一种弱类型或者说动态语言。这意味着不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。
var age = 10; //这是一个数字型
var areYouOk = '使得'; //这是一个字符串
在代码运行时,变量的数据类型是由JS引擎根据 = 变量值的数据类型来判断的,运行完毕后,变量就确定了数据类型。
JS 拥有动态类型,同时也意味着相同的变量可用作不同的类型:
var x = 6; //x为数字
var x = "bill"; //x为字符串
2、数据类型的分类
JS 把数据类型分为两类:
- 简单数据类型(Number、String、Boolean、Undefined、Null)
- 复杂数据类型(object)
2.1、简单数据类型(基本数据类型)
JS中的简单数据类型及其说明如下:
简单数据类型 | 说明 | 默认值 |
---|---|---|
Number | 数字型,包含 整型值和浮点型值,如21、0.21 | 0 |
String | 字符串类型,如“张三”, 注意 JS里面,字符串都带引号 | “ ” |
Undefined | var a; 声明了变量a 但没有赋值,此时a = Undefined | undefined |
Boolean | 布尔值类型,如true、false,等价于1 和 0 | false |
Null | var a = null; 声明了变量a 为空值 | null |
2.2、数字型 Number
1. 数字型进制
最常见的进制有二进制、八进制、十进制、十六进制
//1、八进制数字序列范围:0~7
var num1 = 07; //对应十进制的7
var num2 = 019 //对应十进制的19
var num3 = 08; //对应十进制的8
//2、十六进制数字序列范围:0~9以及A~F
var num = 0xA;
现阶段我们只需要记住,在JS中八进制前面加 0,十六进制前面加 0x
2.数字型范围
JS中数值的最大和最小值
alert(Number.MAX_VALUE); //1.7976931348623157e+308
alert(Number.MIN_VALUE); //5e-324
- 最大值:Number.MAX_VALUE,这个值为:1.7976931348623157e+308
- 最小值:Number.MIN_VALUE,这个值为:5e-324
3.数字型三个特殊值
alert(Infinity); //Infinity
alert(-Infinity); //-Infinity
alert(NaN); //NaN
- Infinity,代表无穷大,大于任何数值
- -Infinity,代表无穷小,小于任何数值
- NaN,Not a number,代表一个非数值
4.isNaN()
用来判断一个变量是否为非数字的类型,是数字–>返回 true, 不是数字—>返回 false
var usrAge = 21;
var isOk = isNaN(nserName);
console.log(isOk); //flase
var usrName = "andy";
console.log(isNaN(userName)); //true
2.3、字符串型 String
字符串型可以是引号中的任意文本,其语法为双引号“ ” 和单引号‘ ’var
var strMsg = "我爱北京天安门~"; //使用双引号表示字符串
var strMsg2 = '我爱吃猪蹄'; //使用单引号表示字符串
//常见错误
var strMsg3 = 我爱大肘子; //报错,没使用引号,会被认为是js代码,但js没有这些语法
因为 HTML 标签里面的属性使用的是双引号,JS这里我么更推荐使用单引号。
1.字符串引号嵌套
JS 可以用 单引号嵌套双引号,或者用 双引号嵌套单引号(外双内单,外单内双)
var strMsg = '我是"高富帅"程序猿'; //可以用''包含""
var strMsg2 = "我是'高富帅'程序猿"; //可以用""包含''
//常见错误
var badQuotes = 'What on earth?"; //报错,不能 单双引号搭配
2.字符串转义符
类似 HTML 里面的特殊字符,字符串中也有特殊字符,我们称之为转义符。
转义符都是\ 开头的,常用的转义符及其说明如下:
转义符 | 解释说明 |
---|---|
\n | 换行符,n是newline的意思 |
\\ | 斜杠\ |
\’ | ’ 单引号 |
\" | " 双引号 |
\t | tab 缩进 |
\b | 空格,b 是 blank 的意思 |
例:
var str1 = "我是一个'高富帅'的\n程序猿";
console.log(str1);
3.字符串的长度
字符串是由若干字符组成的,这些字符的数量就是字符串的长度。通过字符串的 length 属性可以获取整个字符串的长度。
var strMsg = "我是帅气的程序猿!";
alert(strMsg.length); //显示9
4.字符串的拼接
- 多个字符串之间可以使用 + 进行拼接,其拼接方式为 字符串 + 任何类型 = 拼接之后的新字符串
- 拼接前会把字符串相加的任何类型转成字符串,再拼接成一个新的字符串
console.log('沙漠' + '骆驼'); //字符串的沙漠骆驼
console.log('yuyu' + 18); //字符串的yuyu18
+号总结口诀:数值相加,字符相连
2.4、布尔型 Boolean
布尔类型有两个值:true 和 false,其中true表示真(对),而false表示假(错)。
布尔型和数字型相加的时候,true 的值为1,false 的值为0。
console.log(true + 1); //2
console.log(false + 1); //1
2.5、Undefined 和 Null
一个声明后没有被赋值的变量会有一个默认值 undefined (如果进行项链或者相加时,注意结果)
3、获取变量数据类型
3.1、获取检测变量的数据类型
typeof 可用来获取检测变量的数据类型
var num = 10;
console.log(typeof num); //number
var str = 'pink';
console.log(typeof str); //string
var timer = null;
console.log(typeof timer); //object
4、数据类型转换
4.1、什么是数据类型转换
使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,而需要转换变量的数据类型。通俗来说,就是把一种数据类型的变量转换为另一种数据类型。
我们通常会实现3种方式的转换:
- 转换为字符串类型
- 转换为数字型
- 转换为布尔型
4.2、转换为字符串
方式 | 说明 | 案例 |
---|---|---|
toString() | 转成字符串 | var num = 1;alert(num.toString()); |
String()强制转换 | 转成字符串 | var num = 1;alert(String(num)); |
加号拼接字符串 | 和字符串拼接的结果都是字符串 | var num = 1;alert(num + “字符串”); |
- 第三种掌握
4.3、转换为数字型(重点)
方式 | 说明 | 案例 |
---|---|---|
parseInt(string)函数 | 将string类型转换成整数数类型 | parseInt(‘78’) |
parseFloat(string)函数 | 将string类型转换成浮点数数类型 | parseFloat(‘78.21’) |
Number()强制转换函数 | 将string类型转换成数值型 | Number(‘12’) |
js隐式转换(- * /) | 利用算数运算隐式转换为数值型 | ‘12’ - 0 |
- 注意 parseInt 和 parseFloat 单词的大小写,这2个是重点
- 隐式转换是我们在进行算数运算的时候,JS自动转换了数据类型
代码:
//1、parseInt(变量) 可以把字符型的转换为数字型 得到的是整数
console.log(parseInt('3')); //3
console.log(parseInt('3.14')); //3 取整
console.log(parseInt('120px')); //120 会去掉这个px单位
console.log(parseInt('rem120px')); //NaN
//2、parseFloat(变量) 可以把字符型的转换为数字型 得到的是小数
console.log(parseInt('3.14')); //3.14
console.log(parseInt('120px')); //120 会去掉这个px单位
console.log(parseInt('rem120px')); //NaN
//3、利用 Number(变量)
var str = '123';
console.log(Number(str)); //数字型123
console.log(Number('12')); //数字型 12
//4、利用了算数运算 - * / 隐式转换
console.log('12' - 0); //数字型 12
console.log('123' - '120'); //数字型 3
console.log('123' * 1); //数字型 123
4.4、转换为布尔型
方式 | 说明 | 案例 |
---|---|---|
Boolean()函数 | 其他类型转换成布尔值 | Boolean(‘true’); |
- 代表空、否定的值 会被转换为false,如‘ ’、0、NaN、undefined
- 其余值都会被转换为true