1.数据类型:
(1)数据类型的不同表示所占存储空间的不同
(2)js的变量数据类型是只有程序在运行过程中,根据等号右边的值来确定的
(3)js拥有动态语言 变量的数据类型是可以变化的
(4)js数字类型既可以用来保存整数值,也可以保存小数(浮点数)–number
2.五种基础数据类型
(1)number:数字(var num = 10; var PI = 3.14;//PI数字型)
数字型的最大值
console.log(Number.MAX_VALUE);
数字型的最小值
console.log(Number.MIN_VALUE);
无穷大
console.log(Number.MAX_VALUE*2);
无穷小
console.log(-Number.MIN_VALUE*2);
非数字 NaN(字符串减去/加等等数字都是NaN)
console.log('李高文'-100);//NaN
(2)string:字符串(口诀:数值相加,字符相连)
var str='我是一个' 高富帅的 '程序员';书写错误 从左往右执行 高富帅没有引号
var str="我是一个 '高富帅'的程序员";书写正确 外双内单
var str='我是一个"高富帅"的程序员';书写正确 外单内双
检测获取字符串的长度 length
var str='my name is ligaowem';
console.log(str.length);//19
字符串的拼接 + 只要字符串和其他类型向拼接 最终结果是字符串类型
我们变量不要写到字符串里面,是通过和 字符串相连的方式实现的
我们的变量和字符串相连的口诀: 引引加加(删掉数字,变量写中间)
var age = 18;
console.log('李高文 ' + age + '岁');
(3)boolean:true/false
var flag = true;//flag 布尔型
var flag1 = false;//flag1 布尔型
console.log(flag + 1);2//参与加法运算 当1来看
console.log(flag1 + 1);1//参与加法运算 当0来看
(4)undefined:未定义,变量声明但是没有赋值
var str;
console.log(str);//undefined
var variable = undefined;
console.log(variable + 'pink');//undefinedpink
console.log(variable + 1);//NaN underfined和数字相加 最后结果是NaN
(5)null:空值 object
var space = null;
console.log(space + 'pink');//nullpink 空值加字符串 最后结果是字符串
console.log(space+1);// 1 空值加数字 最后结果是数字
3.typeof检测变量的数据类型
var num = 10;
console.log(typeof num);//number
var str = 'pink';
console.log(typeof str);//string
var flag = true;
console.log(typeof flag);//布尔类型
var vari = undefined;
console.log(typeof vari);//undefined
var flag2 = null;
console.log(typeof flag2);//object
(1)prompt 用typeof检测的值是 字符型的
var age = prompt('请输入年龄');
console.log(age);
console.log(typeof age);//string
(2)控制台输出数据颜色区分是什么数据类型
4.数据类型的转换
(1).转换字符串型 (任何字符串类型加上数字等于字符串)
变量.toString() 直接调用变量的方法 其变量值不能是null 或者是 undefined
var num = 10;
var str = num.toString();
console.log(str);//转换字符串的10
console.log(typeof str);
我们利用String()转换字符串的10 可将任何类型转化字符串
console.log( String(num) );
利用+拼接字符串的方法实现转换效果(隐式转换)
console.log(num + '');
(2).转换数字型
parseInt(变量) 可以把 字符型转化数字型 得到的是整数
console.log( parseInt (age) );
console.log( parseInt('3.14') );//3 取整
console.log( parseInt('120px') );//转化数字120 会去掉'px'单位
console.log( parseInt('rem120px') );NaN 前面加了英文字母 如果内容不可以转换成数字,则返回NaN
parseFloat(变量) 可以把 字符型转化数字型 得到的是小数 浮点数
console.log('31.4444');//得到数字 31.4444
console.log( parseFloat('120px') );//转化数字120 会去掉px单位
console.log( parseFloat('rem120px') );//NaN.前面加了英文字母
利用Number(变量) 强制转换
var str = '123';
console.log( Number(str) );//数字型123
利用算术运算 - * / 隐式转换
console.log('12'- 0);//转换数字型12
console.log('123' - '120');//3 转换数字型相减
console.log('123'*1);//转化数字123
console.log('123'/10);//转化数字12.3
(3).转换布尔型 Boolean()
false、0、NaN、Undefined、null会被转换成false
“”空字符串会被转换成false
其它的都会被转成true(任何非空字符串都会被转换为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('123'));//true
console.log(Boolean('你好吗?'));//true
console.log(Boolean('我很好!'));//true
console.log(Boolean(123));//true
暂时我们学习过的有:逻辑运算符 ! 的操作
!12;// false
!1;// false
!'hello';// false
!!'hello';// true
!!123;// true
NaN
含义:Not a Number(非数字)
NaN表示的虽然是非数字,它的数据类型却是number类型。
特点:NaN与任何值都不相等,包括自身。
(4)isNaN()这个方法用来判断非数字
并且返回一个值 如果是数字返回的是false 如果不是数字返回的是true
console.log(isNaN(12));//false
console.log(isNaN("李高文"));//true