JavaScript-----4.数据类型

1.变量的数据

变量用来存储值的所在处,有名字和数据类型。变量的数据类型决定将如何代表这些值的位存储到计算机内存中。JavaScript是一种弱类型或者说是动态语言。不用提前声明变量的类型,在程序运行中变量会被自动确定。

var age;//不确定类型
age = 10;//确定位整型

而java\C中是

int age = 10;//直接确定为整形

python中可以 不用声明

age = 10;

JavaScript拥有动态类型,同时也意味着相同的变量可以用作不同的类型

var x = 6;//x为数字
var x = "Bill"; //x为字符串

2.数据类型的分类

JS的数据类型分:简单数据类型(Number,String,Boolean,Underfined,Null)和复杂数据类型(object)

2.1简单数据类型

2.1.1 Number:数字型包括整形值和浮点型值,默认值是0

(1)进制

var num = 10; //num数字型
var PI = 3.14;//PI数字型

//八进制:0~7程序里数字前加0表示8进制数字
var num1 = 010;
console.log(num1);//打印输出的是8
var num2 = 012;
console.log(num2);//打印输出10

//十六进制:0~9 a~f程序里数字前加0x表示16进制数字
var num3 = 0x9;
console.log(num3);//打印输出的是9
var num4 = 0x12;
console.log(num4);//打印输出的是18

(2)数字型范围
JavaScript中数值的最大值(Number.Max_VALUE)和最小值(Number.MIN_VALUE)
Number.Max_VALUE: 1.7976931348623157e+308
Number.MIN_VALUE: 5e-324
Inifit:无穷大,大于任何数值
-Infint:无穷小,小于任何数值
NaN: not a number,代表一个非数值(例如字符串与某个整数进行加减运算)

(3)isNaN()
用于判断一个变量是否为非数字类型,如果是数值返回false,如果是非数字返回true

//isNaN()用这个方法用来判断非数字,并且返回一个值,如果是数字则返回false否则返回true
console.log(isNaN(12));//false
console.log(isNaN('pink 老师'))//true

2.1.2 String:字符串类型,默认值是空字符串""

(1)引号可以是单引号也可以是双引号,推荐在JS中用单引号(html中用双引号)
(2)转义字符
\n: 换行
\: 斜杠 ': 单引号'
": 双引号"
\t: tab缩进
\b: 空格(b是blank的意思)

(3)字符串长度及拼接
length属性用于获取字符串的长度:

//检测字符串长度length
var str = 'my name is andy';
console.log(str.length);

利用'+'进行字符串的拼接,口诀:数值相加,字符相连:

console.log('沙漠'+'骆驼');//沙漠骆驼

//字符型和其他类型进行拼接最后的结果还是字符串型的
console.log('pink老师'+18);//pink老师18
console.log(18+'pink老师');//18pink老师
console.log(true+'pink');//truepink
console.log('12'+12);//1212
//但是以下就不是拼接
console.log(12+12);//24

字符串拼接加强:

var age = 18;
console.log('pink老师'+age+'岁');

案例:

//弹出一个输入框,需要用户输入年龄,之后弹出一个警示框显示“您今年xx岁啦”
age = prompt('请输入年龄');
alert('您今年岁'+age+'啦');

2.1.3 Boolean:布尔值类型如true,false,默认值false

var flag = true;
var flag1 = false;
console.log(flag+1);//2
console.log(flag1+1);//1

2.1.4 Undefined

var a;声明了变量但是没有给值,此时a=underfined,默认值underfined

//如果一个变量声明但是未赋值 就是underfined未定义数据类型
var str;
console.log(str);//undefined
var variable = undefined;
console.log(variable);//undefined
console.log(variable+'pink');//undefinedpink     字符串类型
console.log(variable+1);//NaN  undefined和数字相加最后的结果是NaN
console.log(variable+true);//NaN

2.1.5 Null:

var a=null;声明了变量a为空值

//null
var space = null;
console.log(space);
console.log(space+'pink');//nullpink
console.log(space+1);//1

3.获取变量的数据类型

3.1 typeof

typeof可以用来获取检测变量的数据类型

var num = 10;
console.log(typeof num);//number
var str = 'pink';
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

利用typeof验证prompt取过来的值的类型

age = prompt('请输入您的年龄');
console.log(age);//18
console.log(typeof age);//string

3.2 console

除了可以用typeof来检测变量属于哪一种类型还可以通过浏览器控制台console的颜色来判断属于哪一种数据类型

console.log(18);//数字型 纯蓝色
console.log('18');//字符型 黑色
console.log(true);//布尔型 墨蓝色
console.log(undefined);//浅灰色
console.log(null);//浅灰色

3.3 字面量

字面量是在源代码中一个固定值的表示方法,通俗来说就是字面量表示如何表达这个值
数字字面量: 8,9,10
字符串字面量: '黑马程序员','大前端'
布尔字面量:true,false

4. 数据类型转换

4.1 什么是数据类型转换

使用表单(input)、prompt获取过来的数据默认是字符串类型,此时就不能直接简单地进行加法运算,而需要转换变量的数据类型,通俗来说就是把一种数据类型变量转化成另一种数据类型。
常用的3种方式的转换:

  • 转换为字符串类型
  • 转换为数字型
  • 转换为布尔型

4.1.1 转换为字符串类型

var num = 10;

//1. 把数字型转换成字符串  格式:变量.toString()
var str = num.toString();
console.log(str);
console.log(typeof str);
//2. 我们利用String()   格式:String(变量)
console.log(String(num));
//3. 利用+拼接字符串的方法实现转换效果  隐式转换
console.log(num+'');

4.1.2 转换为数字类型(重点)

(1)方法1:parseInt(变量)

var age = prompt('请输入您的年龄');
//1. parseInt(变量) 可以把字符型的转化为数字型 得到的是整数(直接把小数点后面的数字抹掉)
console.log(parseInt(age));
console.log(parseInt('18.9')); //18
console.log(parseInt('120px')); //120 会直接将后面的字母去掉
console.log(parseInt('rem120px'));//NaN

(2)方法2:parseFloat(变量)

//2. parseFloat(变量)可以把字符型转化为数字型 得到的是小数 浮点数
console.log(parseFloat('3.14'));
console.log(parseFloat('120px')); //120 会直接将后面的字母去掉
console.log(parseFloat('rem120px'));//NaN

(3)方法3:Number(变量)

//3. 利用Number(变量)
var str = '123';
console.log(Number(str));
console.log(Number('12'));

(4) 利用了算数运算-*/隐式转换

//4. 利用了算数运算-*/隐式转换
console.log('12'-0);//12  若中间是加号则'120'
console.log('123'-'120');//3 若是加号则是'123120'
console.log('123'*1);//'123'
console.log('123'/1);//'123'

猜你喜欢

转载自www.cnblogs.com/deer-cen/p/11978679.html