目录
1.数据类型简介
1.1为什么需要数据类型
在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。
1.2变量的数据类型
js的变量数据类型是只有程序在运行过程中,根据等号右边的值来确定的,
js是动态语言,变量的数据类型是可以变化的
// var num ; 这里的num不确定属于哪种数据类型的
var num = 10; //num属于数字型
// js的变量数据类型是只有程序在运行过程中,根据等号右边的值来确定的
var str = 'hello' //str字符串类型
// js是动态语言,变量的数据类型是可以变化的
var x = 10; //x是数字型
x = 'hello' //x 是字符串型
1.3数据类型的分类
js把数据类型分为两类
- 简单数据类型(Number,String,Boolean,Undefined,Null)
- 复杂数据类型(object)
2.简单数据类型
2.1简单数据类型(基本数据类型)
简单数据类型 | 说明 |
---|---|
Number | 数字型,包含整型值和浮点型值,默认值为0 |
Boolean | 布尔值类型,如true、false,等价于1和0,默认值false |
String | 字符串类型,用引号括起来 |
Undefined | var a;声明了变量a但是没有赋值,此时a = undefined |
Null | var a = null; 声明了变量a为空值 |
2.2数字型 Number
2.2.1整型、浮点型、八进制、十六进制、三个特殊值
var num = 10;//num 数字型
var PI = 3.14 //PI 数字型
//1.八进制 0~7 程序里面 数字前面加上0 表示八进制
var num1 = 010; // 8
var num2 = 012; // 10
//2.十六进制, 0 ~ 9 a ~ f 数字前面加0x 表示十六进制
var num3 = 0x9; // 9
var num4 = 0xa; // 10
//3.数字型的最大值
console.log(Number.MAX_VALUE);
//3.数字型的最小值
console.log(Number.MIN_VALUE);
// 数字型的三个特殊值
// Infinity,代表无穷大,大于任何数值
// -Infinity,代表无穷小,小于任何数值
// NaN , Not a number ,代表一个非数值
console.log(Number.MAX_VALUE * 2); //Infinity 无穷大
console.log(-Number.MAX_VALUE * 2); //-Infinity 无穷小
console.log('hello' - 100); //NaN
2.2.2 isNaN()方法
isNaN()这个方法用来判断非数字 , 并且返回一个值,如果是数字返回的是false,如果不是数字返回的是true
// isNaN()这个方法用来判断非数字 , 并且返回一个值,如果是数字返回的是false,如果不是数字返回的是true
console.log(isNaN(12)); // false
console.log(isNaN('hello')); // true
2.3字符串型 String
字符串型可以是引号中的任意文本,其语法为双引号和单引号,(推荐单引号)
var str = 'hello';
var str = "hello word"
1.可以用单引号嵌套双引号,或用双引号嵌套单引号(外双内单,外单内双)
var str = 'hello "world"';
var str = "hello 'word'"
2.字符串转义符
转义符都是\开头的,常用的转义符如下
转义符 | 说明 |
---|---|
\n | 换行符,n即newline |
\ | 斜杠 \ |
’ | ’ 单引号 |
" | " 双引号 |
\t | tab 缩进 |
\b | 空格,b是blank的意思 |
3.字符串长度
字符串是由若干字符组成的,这些字符的数量就是字符串的长度,通过字符串的length属性可以获取整个字符串的长度。
//1.检测获取字符串的长度length
var str = "my name is allean";
console.log(str.length); // 17
4.字符串拼接
- 多个字符串之间可使用 + 进行拼接, 字符串 + 任何类型 = 拼接之后的新字符串
- 拼接前会把与字符串相加的任何类型转成字符串,再拼接成一个新的字符串
数值相加,字符相连
//1.检测获取字符串的长度length
var str = "my name is allean";
console.log(str.length); // 17
//2.字符串的拼接 +
console.log("你好" + "js"); //字符串的 你好js
console.log("你好" + 18); //'你好18'
console.log("你好" + true); //你好true
console.log(12 + 12); //24
console.log("12" + 12); //'1212'
console.log(12 + 1 + "你好"); //'13你好'
console.log("你好" + 1 + 12); //'你好112'
5.字符串拼接加强
我们经常将字符串和变量来拼接,因为变量可以很方便的修改值
书写格式如下,不能用引号括起来,用+号相连
//与变量拼接
var age = 18
console.log('张三' + age + '岁');
2.4布尔型 Boolean
布尔型有两个值:true和false,true(真/对),false(假/错)
var flag = true;
var flag1 = false;
console.log(flag + 1); //2 true 参与加法运算当1来看
console.log(flag1 + 1); //1 false 参与加法运算当1来看
2.5Undefined和Null
一个声明后没有被赋值的变量会有一个默认值undefined
// 如果一个变量声明未赋值 就是undefined 未定义数据类型
var str ;
console.log(str);//undefined
var variable = undefined;
console.log(variable + 'hello');//字符串型 'variablehello'
console.log(variable + 1); //NaN undefined和数字相加 结果是NaN
一个声明变量为null值,里面存的值为空
//null 空值
var space = null;
console.log(space + 'hello'); //nullhello
console.log(space + 1); //1
3.获取变量数据类型
3.1检测变量的数据类型
typeof可用来获取检测变量的数据类型
var num = 10;
console.log(typeof num); //number
var str = 'hello';
console.log(typeof str); //string
var flag = true;
console.log(typeof flag); //boolean
var vari = undefined;
console.log(typeof vari); //undefined
var timer = null;
console.log(typeof timer); //object
//prompt取过来的值是字符型的
var age = prompt("请输入您的年龄");
console.log(typeof age); //string
4数据类型转换
将一种数据类型转换为另一种数据类型
- 转换为字符串
- 转化为数值
- 转化为布尔型
4.1转换为字符串
方式 | 说明 |
---|---|
toString() | 转成字符串 |
String() 强制转换 | 转成字符串 |
加号拼接字符串 | 和字符串拼接的结果都是字符串 (隐式转换) |
//1.把数字型转化为字符串型 变量.toString()
var num = 10;
var str = num.toString();
console.log(str);
console.log(typeof str); //string
//2.String()
console.log(typeof String(num)); //string
//3.利用 + 拼接字符串的方法实现转换效果
console.log(num + " ");
4.2转换为数字型(重点)
方式 | 说明 |
---|---|
parseInt(string) | 将string类型转成整数数值型 |
parseInt(string) | 将string类型转成浮点数数值型 |
Number()强制转换函数 | 将string类型转成数值型 |
js隐式转换(- * /) | 利用算术运算隐式转换为数值型 |
//1.parseInt(变量)
var age = prompt("请输入您的年龄");
var age1 = parseInt(age);
console.log(typeof age1); //number
console.log(parseInt("3.14")); //3 取整
console.log(parseInt("3.94")); //3 取整
console.log(parseInt("120px")); //120 会去掉px单位
console.log(parseInt("rem120px")); //NaN
//2.parseFloat(变量)
console.log(parseFloat("3.14")); //3.14
console.log(parseFloat("120px")); //120 会去掉px单位
console.log(parseFloat("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("12" * 1); //12
console.log("12" / 1); //12
4.3转换为布尔型
方式 | 说明 |
---|---|
Boolean()函数 | 其它类型转成布尔值 |
- 代表空、否定的值会被转化为false,如’ '、0、NaN、null、undefined
- 其余值都会被转化为true
console.log(Boolean(''));//false
console.log(Boolean(0));//false
console.log(Boolean(NaN));//false
console.log(Boolean(null));//false
console.log(Boolean(undefined));//false
console.log(Boolean('hello'));//true
console.log(Boolean(11));//true