JavaScript之数据类型

137 阅读3分钟

1. 数据类型简介

1.1 为什么需要数据类型

计算机中,不同的数据类型所需要的存储空间是不一样的,为了让存储空间被充分利用,所以需要设置不同数据类型。

//这是数字型
var age = 18;
//这是字符串
var name = '张三';

1.2 变量的数据类型

在JS中,我们是不确定这个变量具体是什么数据类型。JS的变量数据类型只有程序在运行过程中,根据等号右边的值来确定。

JS是一种弱类型或者说动态语言。重新赋值之后,变量的数字类型可以发生变化,而不是固定的数据类型

var x = 10;  //x是数字类型
x = 'pink';  //x是字符串类型

2.简单数据类型

2.1 简单数据类型(基本数据类型)

1651040228(1).png

2.2数字型Number

//小数、整数都是Number
var num = 10;
var PI = 3.14;

2.2.1 数字进制

//数字前面加0表示八进制
var num1 = 010;
//数字前面加0x表示十六进制
var num2 = 0x9;

2.2.2 数字型范围

//数字型的最大值
console.log(Number.MAX_VLAUE);
//数字型的最小值
console.log(Number.MIN_VALUE);

2.2.3 数字型三个特殊值

Infinity,无穷大 -Infinity,无穷小 NaN,Not a number,代表一个非数值

var num = 'a'-100; //NaN

2.2.4 isNaN()

isNaN用来判断一个值是不是非数值

isNaN(12)//false
isNaN('pink')//true

2.3 字符串型String

任何添加""或''的文本都是字符串类型

2.3.1 文本中需要有''或者""时,可以外双内单或者外单内双

var str = 'today is "wednesday".';

2.3.2 字符串转义字符

1651041383(1).png

var str = 'today is \n"wednesday".';
var str = 'today is \t"wednesday".';

2.3.3 字符串长度

length属性

var str = 'my name is dylan';
console.log(str.length);  //获取字符串长度

2.3.4 字符串拼接

  • 字符串 + 任何数据类型
  • 拼接前会把需要拼接的数据转为String再拼接
var str1 = '12' + 12;
var str2 = 'dylan' + 'chan';
var ste3 =  'dylan' + true;

2.3.5 字符串拼接加强

将一个变量作为字符串拼接的元素

var age = 18;
console.log('dylan现在是' + age + '岁');
console.log('dylan现在是' + age + '岁');  //先写死,再用引引加加

2.4 布尔型Boolean

true \ false 1 \ 0

//Boolean可以参加数值运算
var num = 1 + true
num = 2

2.5 Undefined \ null

声明变量未赋值的,为未定义数据类型

// Undefined + 1 为NaN
var num = Undefined + 1;
var num = null;
console.log(num + '1') // null1
console.log(num + 1) //1

3. 获取变量数据类型

3.1 获取变量数据类型

typeof

var num = 1;
console.log(typeof num); //number
var str = 'dylan'
console.log(typeof str); //string
var timer = null;
console.log(typeof timer); //object

3.2 字面量

在源代码中一个固定值的表示法

4. 数据类型的转换

4.1 什么是数据类型转换

将一种数据类型的变量转换成另外一种数据类型

  • 转换为字符串类型

1651045378(1).png 使用 + 称之为隐式转换

  • 转换为数字类型

1651045609(1).png

var age = prompt('请输入你的年龄:');
console.log(parseInt(age));  //得到的结果都是整数
console.log(parseInt('3.14')); //3
console.log(parseInt('120px')); //120 可以去掉单位
console.log(parseInt('rem120px')); //NaN
console.log(parseFloat('3.14')); //3.14 得到的结果是可以是小数
//Number(变量)强制转换数据类型
console.log(Number(age))
//利用算数运算 - * / 隐式转换
console.log('12' - 0) // 12
  • 转换为布尔类型

1651046230(1).png

  • 代表空、否定的值会被转换为false,如'',0,null,Undefined,NaN
  • 其他都是true

拓展阅读

1. 解释性语言和编译性语言

1651046455(1).png

翻译器的翻译方式有两种: 编译解释

1651046536(1).png

编译是将所有代码编译好了再运行; 解释是边解释便运行;

2. 标识符、保留字、关键字

2.1 标识符

开发人员为变量、属性、函数、参数取的名字 标识符不能使关键字、保留字

2.2 关键字

1651046745(1).png

2.3 保留字

1651046786(1).png