目录
一,数据类型介绍
1,1为什么需要数据类型
在计算机中,不同的数据所需占用的存储空间是不同的,
为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,
于是定义了不同的数据类型。
1.2 变量的数据类型
变量是用来存储值的所在处,它们有名字和数据类型。
不同的数据类型,内存会分配不同的空间来储存,这样可以节省空间
二,简单的数据类型
js之中数据分为两类,这里我们主要分析简单的数据类型
简单数据类型 (Number,String,Boolean,Undefined,Null)
复杂数据类型 (object)对象
1,数字型 Number
(1),类型
JavaScript 数字类型既可以用来保存整数值,也可以保存小数(浮点数)。
var age = 18; //整数
var money = 9.15; //小数
(2),取值范围
js 里面的数字取值是有范围的
alert(Number.MAX_VALUE); // 最大值 1.7976931348623157e+308
alert(Number.MIN_VALUE); // 最小值 5e-324
(3),进制的转换
// 1.正常的数字,在前面加上 0 ,就代表八进制
var num1 = 07; // 对应十进制的7
var num2 = 010; // 对应十进制的8
var num3 = 011; // 对应十进制的9
console.log(num1,num2,num3);
// 2.十六进制数字序列范围:0~9以及A~F
// 同理,前面加上0x,就代表是十六进制
var num = 0xA; //对应十进制中的10
console.log(num);
(4),三个特殊值
3, NaN ,Not a number,代表一个非数值
alert(Infinity > 1.7976931348623157e+308); // true
alert(-Infinity < 5e-324); // true
alert("亚梓莎" - 300 ); // 这个明显计算不了,于是它输出 NaN
(5),isNaN()
用来判断一个变量是否为非数字的类型,返回 true 或者 false
是数字返回false
不是数字返回true
var yzs = '亚梓莎';
alert(isNaN(yzs)); //不是数字 返回true
var age = 300;
alert(isNaN(age)); //是数字,返回false
2,字符串型 String
(1)字符串型数据写法
字符串型可以是引号中的任意文本,其语法为 双引号 " " 和 单引号' '
因为 HTML 标签里面的属性使用的是双引号,JS 这里更推荐使用单引号。
var yzs = '亚梓莎';
alert(yzs); //输出亚梓莎
var age = '300';
alert(age) //这里会输出300,但是这个300 不是数字型的数据,而是字符串,
//因为它有引号
(2). 字符串引号嵌套
JS 可以用单引号嵌套双引号 ,或者用双引号嵌套单引号 (外双内单,外单内双)
var yzs = '我是"双子座"的'; //输出 => 我是"双子座"的
alert(yzs)
var szz = "我也是'双子座'的" //输出 =>我也是'双子座'的
alert(szz)
(3).字符串转义符
// \n可以换行
var yzs = '空\n格'
console.log(yzs);
alert(yzs) //输出 = > 空
// 格
(4),字符串的长度
字符串是由若干字符组成的,这些字符的数量就是字符串的长度。
通过字符串的 length 属性可以获取整个字符串的长度
var yzs = '打了300年的史莱姆,不知不觉就练到了满级';
alert(yzs.length) // 输出21,这个字符串长度是21
(5). 字符串拼接
//1字符串 "相加"
alert('hello' + ' ' + 'yzs'); // hello world
//2数值字符串 "相加"
alert('100' + '100'); // 100100
//3数值字符串 + 数值
alert('11' + 12); // 1112
3. 字符串里还可以拼接字符串
var yzs = 300;
alert('亚梓莎姐姐' + yzs + '岁啦!'); //输出 亚梓莎姐姐300岁啦!
3,布尔型Boolean
(1).布尔型的概念
布尔型只有两个值:true 和 false ,其中 true 表示真(对),而 false 表示假(错)
var yzs = '亚梓莎姐姐';
alert(yzs === '哥哥') //错,所以输出false,
alert(yzs === '亚梓莎姐姐') //对,所以输出true
(2)布尔型和数字型相加的时候, true 的值为 1 ,false 的值为 0
console.log(true + 1); // 2
console.log(false + 1); // 1
4,Undefined(未定义的)
一个声明后没有被赋值的变量会有一个默认值 undefined
( 如果进行相连或者相加时,注意结果)
var yzs;
alert(yzs); // 单独输出 undefined
alert('你好' + yzs); //与字符串一起输出 你好undefined
alert(11 + yzs); //与数字型一起输出 NaN 前面讲了这个NaN 意思是非数值
alert(true + yzs); //与布尔型一起输出 NaN
5,Null(空值)
一个声明变量给 null 值,里面存的值为空
var yzs = null;
alert('你好' + yzs); // 你好null
alert(11 + yzs); // 11
alert(true + yzs); // 1
三,获取变量数据类型
1,获取检测变量的数据类型
typeof 可用来获取检测变量的数据类型
var str = '字符串';
var num = 18;
var boo = 18 === 18;
var und;
var nul = null
console.log(typeof str); // 结果 string
console.log(typeof num); // 结果 number
console.log(typeof boo); // 结果 boolean
console.log(typeof und); // 结果 undefined
console.log(typeof nul);// 结果 object
2,字面量
1,字面量是在源代码中一个固定值的表示法,通俗来说,就是字面量表示如何表达这个值。
console.log(18);
console.log('18');
console.log(true);
console.log(undefined);
console.log(null);
控制台输出,注意不同数据类型,颜色不同
四,数据类型转化
1,什么是数据类型转换
使用表单、prompt 获取过来的数据默认是字符串类型的,
此时就不能直接简单的进行加法运算,而需要转换变量的数据类型。
通俗来说,就是把一种数据类型的变量转换成另外一种数据类型。
2,转换为字符串类型
(1)toString()
var num = 300;
console.log(typeof num); //number
var yzs = num.toString();
console.log(typeof yzs); //string
(2)Sting() 强制转换
var yzs = 300;
console.log(typeof yzs); //number
console.log(typeof String(yzs)); //string
(3)利用 + 拼接字符串的方法实现传递效果
因为是js帮我们转换的 所以又叫 隐式转换
var yzs = ('亚梓莎' + 300);
console.log(typeof yzs); //string
3,转换为数字型
(1).用parselnt()将数据转换为数字型
var yzs = '300'
console.log(typeof yzs); //string
console.log(typeof parseInt(yzs)); //number
parselnt()会帮你取整,单位也会去掉
console.log(parseInt('3.1')); //3
console.log(parseInt('3.9')); //3
console.log(parseInt('300px')); //300
(2).用parseFloat()将数据转换为数字型
var yzs = '300.300'
console.log(yzs); //300.300
console.log(typeof yzs); //string
console.log(typeof parseFloat(yzs)); //number
console.log(parseFloat(yzs)); //300.3
console.log(parseFloat('120px')); //120
(3).Number强制转换
var yzs = '300';
console.log(Number(yzs)); //结果是数值形的300
console.log(Number('120'));//结果是数值形的120
(4),隐式转换
console.log('300' - 0);//结果是数值形的300
4,转换为布尔型
使用这个函数
代表空,否定的值会被转换为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('小白')); // true
console.log(Boolean(12)); // true