1. 数据类型简介
1.1 为什么需要数据类型
计算机中,不同的数据类型所需要的存储空间是不一样的,为了让存储空间被充分利用,所以需要设置不同数据类型。
//这是数字型
var age = 18;
//这是字符串
var name = '张三';
1.2 变量的数据类型
在JS中,我们是不确定这个变量具体是什么数据类型。JS的变量数据类型只有程序在运行过程中,根据等号右边的值来确定。
JS是一种弱类型或者说动态语言。重新赋值之后,变量的数字类型可以发生变化,而不是固定的数据类型
var x = 10; //x是数字类型
x = 'pink'; //x是字符串类型
2.简单数据类型
2.1 简单数据类型(基本数据类型)
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 字符串转义字符
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 什么是数据类型转换
将一种数据类型的变量转换成另外一种数据类型
- 转换为字符串类型
使用 + 称之为隐式转换
- 转换为数字类型
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
- 转换为布尔类型
- 代表空、否定的值会被转换为false,如'',0,null,Undefined,NaN
- 其他都是true
拓展阅读
1. 解释性语言和编译性语言
翻译器的翻译方式有两种: 编译 和解释
编译是将所有代码编译好了再运行; 解释是边解释便运行;
2. 标识符、保留字、关键字
2.1 标识符
开发人员为变量、属性、函数、参数取的名字 标识符不能使关键字、保留字