JavaScript是一种弱类型的动态语言。
var num; 这里的num是不确定是什么类型的
var num=10; 这里的num就属于数字型
var str='pink'; 这里的str就属于字符串型
由此可知,js的变量数据类型是只有程序在运行过程中,根据等号右边的值来进行确认的。
JavaScript拥有动态类型,同样也意味着相同的变量可用作不同的类型。
1.数据类型的分类
1)简单的数据类型
2)数字型 number
数字型里面主要有二进制 八进制(0-7) 十进制和十六进制(0-9和a-f)
另外 Number.MAX_VALUE 表示数字型的最大值 固定写法,直接console.log()输出即可。
Number.MIN_VALUE 表示数字型的最小值 固定写法,直接console.log()输出即可。
三个特殊值:infinity 无穷大 -infinity 无穷小 NaN(No a number)代表一个非数值
// 无穷大
console.log(Number.MAX_VALUE *2);
// 无穷小
console.log(-Number.MAX_VALUE *2);
// 非数字
console.log('pink'-100);
验证输出的值是否为一个数值型:
可以通过isNaN()这个方法用来判断是否为非数字。并且返回一个值,如果是数字返回的false,如果不是数字返回的是true;
console.log(isNaN(12));
// 该显示的结果是false,所以12是一个数字类型
console.log(isNaN('pink'));
// 该显示结果为true,所以该变量不是数字类型
// isNaN判断一个值是否是数字类型
var userAge=21;
var isOK=isNaN(userAge);
console.log(isOK);
// 该显示的结果是false,所以21是一个数字类型
3)字符串型
字符串型可以是引号中的任意文本,其语法为双引号" "和单引号' ',js可以用单引号嵌套双引号,或者双引号嵌套单引号(外双内单,外单内双)。
字符串转义字符:
字符串长度的获取方法:通过length属性可以获取整个字符串的长度。
// 判断该字符串的长度为
var str = "everybody,nice to meet you"
console.log(str.length);
字符串的拼接:拼接符号为+
只要有字符串和其他类型相拼接,最终的结果是字符串类型,数值型相加还是数值型。
// 字符串类型和布尔类型进行相加,输出的结果为字符型
console.log('pink'+true);
// 里面两个都是数值型,两个值直接相加就可以
console.log(12+12);
// 字符型和数值型进行相加,输出的依然是字符串型
console.log('12'+12);
字符串拼接加强:我们的变量不要写到字符串里面,是通过和字符串相连的方式实现的。加引号的变量会变成字符串。
// 字符串的拼接
var myname='坚哥',gz='100万',address='北京四合院';
console.log('我的名字是'+myname+'我的家住在'+address);
题目 :弹出输入框,用户输入你的年龄,然后弹出警示框,显示用户的年龄?
// 4.弹出一个输入框,然后警示框显示用户输入的信息
// prompt 弹出一个输入框,用户可以在这里输入信息
// alret是弹出一个警示框,给他声明一个变量进行赋值之后,就可以显示用户输入的信息
// 第一种方式
var info=prompt('你的年龄是');
alert('你的年龄是'+info);
// 第二种方式
var info=prompt('你的年龄是');
var str='您的年龄是'+ info ;
alert(str);
4)布尔型 Boolean
布尔型输出只有两个值,true和false ,但是当他们参加运算的时候true为1,false为0.
// 布尔型
// 当true参与运算的时候,true为1 false为0
var flag=true;
console.log(true+1);
var flag=false;
console.log(false+1);
5)如果我们只声明并没有进行赋值,就是undefined未定义数据类型。
// 未定义数据类型 undefined
var str;
console.log(str);
// 输出的结果为undefined
var variable=undefined;
// 未定义数据类型+pink 其输出的值为undefinedpink
console.log(variable+'pink');
// undefined+数值,最后的输出结果为NaN
console.log(variable+1);
6)Null 空值
// Null 空值
var space=null
console.log(space+'pink')
// 该值的输出结果为nullpink
console.log(space+1)
// 因为null为空值,所以空值加1,该值还是为1
2.获取变量的数据库类型 typeof 检测变量是什么类型
console.log(typeof+变量名) 可以对前面的数据类型进行输出。
// 获取变量的数据类型
var num=10;
console.log(typeof num);
// 该输出的结果为number
var timer=null;
console.log(typeof null);
// 该输出的结果为object类型
var age=prompt();
console.log(typeof age);
// 这里面输出的就不是数值型,输出的是字符型。
3.字面量
字面量是在源代码中一个固定值的表示方法,通俗来说,就是字面量表示如何表达这个值。
console.log() 输出的时候,可以根据颜色判断其属于什么字符类型。
// 字面量
console.log(18);
// 数字型是蓝色的
console.log('18');
// 字符串型是黑色的
console.log(true);
// 布尔型是深蓝色
console.log(undefined);
console.log(null);
// undefined和null是一种浅灰色
JavaScript数据类型转换
1.转换为字符串类型
// 转换为字符型
//1) to String()转换成字符串类型
var num=10;
var str=num.toString();
console.log(typeof str);
//2) 利用String()进行强制转化为字符型
console.log(String(num));
// 3)通过拼接的方式,拼接其他类型的方式进行转换 隐式转换方法
var num=10;
console.log(num + undefined);
// 当声明的类型为数值类型的时候,就不能同undefined进行拼接,其输出的结果为NaN。
// 数值型和字符型相加
console.log(num + 'undefined');
// 变量套上引号的时候,就变成了字符串类型。
// 布尔类型和字符型进行相加
console.log(true + 'undefined');
// 未定义类型和字符型进行相加
console.log(undefined+'undefined');
// null空值与字符串类型进行相加
console.log(null+'undefined');
// 任何类型同字符串型进行相加的操作时,给类型都为字符串的类型。
2.转化为数值型
1)通过 parseInt()进行转换
// 1)通过 parseInt(),可以将该类型转换为数值型(该值转化的值为整数的数值,小数是直接裁剪的,不会出现四舍五入。
var age=prompt('请输入你的年龄');
// 上面输出的的年龄数值的类型为字符串类型
console.log(parseInt(age));
// 通过 parseInt()可以转换为数值型
console.log(parseInt(3.14));
console.log(parseInt(3.9));
// 上面输出的答案都为3,不会出现四舍五入
// parseInt()还可以将数字后面的单位进行去除,只留下数字,但是必须是要以数字进行开头,否则输出的结果为NaN。
console.log(parseInt('120px'));
console.log(parseInt('em120px'));
2)通过parseFloat()进行转换。
// 2) parseFloat() 转换为浮点数 该输出结果保留小数的部分。
var age=prompt('请输入你的年龄');
// 上面输出的的年龄数值的类型为字符串类型
console.log(parseFloat(age));
// 通过 parseFloat()可以转换为数值型
console.log(parseFloat(3.14));
// 该值输出的结果就是3.14 ,它保留了小数部分,也转化成了数值型
// parseFloat()还可以将数字后面的单位进行去除,只留下数字,但是必须是要以数字进行开头,否则输出的结果为NaN。
console.log(parseFloat('120px'));
console.log(parseFloat('em120px'));
3)利用Number() 和 算数运算运算符(除了 ’ + ‘ ,- / * 都能实现转换为数值型
// 3)利用Number() 可以转换成数值型
var str='123';
console.log(Number(str));
// 4)利用算数运算符将字符型转化为数值型 除了+ 。 - * /都可以直接将字符型转换为数值型
console.log('12' / 1);
console.log('12' - 1);
console.log('12' * 1);
例子1: 计算年龄的案例,用户在输入框输入自己的出生年份,然后用当前年份减去用户输入的年份,弹出警示框显示用户的年龄。
// 计算年龄的案例,用户在输入框输入自己的出生年份,然后用当前年份减去用户输入的年份,弹出警示框显示用户的年龄。
var year=prompt('请输入您的年份');
var age=2022-year;
alert('您的年龄为'+age);
例子2:简单的加法器案例:
// 简单的加法器案例,输入的值为整数
var num1=prompt('请输入第一个值')
var num2=prompt('请输入第二个值')
var result=parseInt(num1)+parseInt(num2);
alert('结果为'+result);
// 简单的加法器案例,当输入的值为小数的时候
var num1=prompt('请输入第一个值')
var num2=prompt('请输入第二个值')
var result=parseFloat(num1)+parseFloat(num2);
alert('结果为'+result);
3.转换成布尔型
// 转换成布尔型 Boolean()函数,可以将其他类型转换为布尔型
// 只需要记住代表空,否定值会被转换为false; 如: ' ' , 0 , NaN , null , undefined 只有这五个值会转换为false 其他的都会转换为true;
// 上面的值为true
console.log(Boolean('12'));
console.log(Boolean('小白'));
// 下面的值都为false
console.log(Boolean(''));
console.log(Boolean(0));
console.log(Boolean(NaN));
console.log(Boolean(null));
console.log(Boolean(undefined));
例子3:依次询问用户的信息,最后对数据进行总结,通过alert进行输出。
// 依次询问用户的信息,最后对数据进行总结,通过alert进行输出。
var name=prompt('请输入你的名字');
var age=prompt('请输入您的年龄');
var sex=prompt('请输入你的性别');
var str='您的姓名是:'+name+'\n'+'您的年龄是:'+age+'\n'+'您的性别是:'+sex;
// 注意,多值从警示框输出的时候,都需要用加号进行连接,并且里面的换行字符也需要使用单引号进行包裹,并用加号连接
alert(str);