js数据类型
字面量
用于表达一个固定值的表示法,又叫常量。
概念
- 通俗的理解,字面:所见即所得。js程序执行到代码中的字面量,会立即知道它是什么类型的数据,值是多少。
- 例:数值字面量:8、9、10 字符串字面值:"真实的自我"
数字字面量
整数
-
区分进制
- 十进制: 逢十进一、每个位数只能是0~9之间的数字
- 八进制: 逢八进一、每个位数上只能是0~7之间的数字,而且必须添加前缀0、0O、0o
- 十六进制: 逢十六进一、每个人位数上必须是0
9、af之间的符号,必须写前缀0x、0X开头
-
注意:
- 在进行算术计算时或者参与程序时,所有八进制和十六进制都会被转换成十进制
- 特殊的:八进制中,如果以0开头,每个位数上有超过0 ~ 7之间的数字出现,也就是8 ~ 9,强制忽略前面的0,直接将后面数字当作十进制。
浮点数
- 浮点数不区分进制,所有浮点数都是十进制下的数字。
- 注意:如果浮点数是大于0小于1的,可以省略小数点前面的0不写
- 浮点数的精度问题
- 浮点数值的最高精度是17位小数,但是在进行算术计算时其精确度远远不如整数。
Infinity无穷
- 由于计算机计算能力有限,如果高于最大计算值直接显示:infinity;如果低于最小计算值直接显示:-infinity
- infinity本身就是一个数字
- 最小值:Number.MIN_VALUE ☞ 5e-324
- 最大值:Number.MAX_VALUE ☞ 1.7976931348623157e+308
- 无穷大:infinity
- 无穷小:-infinity
NaN
- not a number: 不是一个正常的数,但是还是一个Number类型的数字。
- NaN与任何值都不相等,包括他本身
- isNaN(): 判断一个数据是不是一个NaN
字符串字面量
- 字符串字面量写法:用一对单引号('')或双引号("")及引号内的字符构成,引号中间的字符可以有任意多个,也可以是没有字符的空字符串
- 注意:字符串中如果字符包含了双引号,则其外部应该由单引号标示,反之相同。
console.log('来自内心"真实自我"的呼唤!'); - 转义符号
- 解决:字符串中有一些特殊功能的字符不能直接书写,还有一些特殊效果不能直接书写
- 模板:转义字符\普通字符,替代一些特殊字符。 例:\n换行,\t Tab制表
- 模板:转义字符\特殊功能字符 ,转换成普通字符 例:'单引号 "双引号 \反斜杠
变量
什么是变量
- variables是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据。
- 变量相当于一个容器,内部可以存储任意类型的数据,使用变量时,用的是内部存储的数据。
为什么要使用变量
- 使用变量可以方便的获取或修改内存中的数据
变量声明
- 变量在使用前,必须先有定义,如果没有定义,会出现引用错误。
- 定义方法:var b;
变量的命名规则和规范
- 规则(不遵守会报错):
- 由字母、数字、下划线、$符号组成,不能以数字开头
- 字母区分大小写,A和a表示不同
- 不能是关键字和保留字
- 关键字:js中有特殊功能的小词语,比如:var、for等
- 保留字:现在没有特殊功能,但是将来新语法中有可能作为关键字使用
- 规范(建议遵守,不遵守不会报错):
- 变量名必须有意义
- 驼峰命名法:多个单词组合而成的,第一个单词首字母小写,后面单词的首字母需要大写。例:userName
变量赋值
- 变量定义之后,初始时没有进行赋值内部有一个默认存储的值:undefined(未定义),表示变量内部未赋值,可以存储数据了。
- 一个关键字var可以同时定义多个变量,并且都赋初值。多个变量之间用逗号进行分隔,最后一个变量后面使用分号进行分隔。
var a = 1,b = 2,c = 3;
数据类型(6个)
学习目标:理解数据类型的含义和转换方法
js中的值,无论是字面量还是变量,都有明确的类型
简单数据类型(5种)
Number 数字类型
- 不区分整数、浮点数、特殊值,都是Number类型
String 字符串类型
- 所有的字符串都是String类型
undefined undefined类型
- 其本身就是一个数据,表示未定义
- 变量声明时默认值:undefined
Boolean 布尔类型
- 字面值:只有true和false,必须是小写字母
- 计算机内部存储:true为1,false为0
null null类型
- null本身是一个数据
- 从逻辑角度,null值表示一个空对象指针
- 如果定义的变量准备在将来用于保存对象,最好将该变量初始化为null
复杂数据类型
Object 对象类型
检测数据类型
- 使用typeof的方法进行数据检测
- 检测方式:
- 在typeof后面加小括号()执行,将要检测的数据放在小括号内部。
console.log(typeof("你好")); - 也可以将typeof作为关键字,后面加空格,空格后添加数据的方式,检测数据。
console.log(typeof 1);
- 在typeof后面加小括号()执行,将要检测的数据放在小括号内部。
- 提示:如何使用谷歌浏览器控制台,快速的查看数据类型?
- 字符串的颜色是黑色的,数据类型是蓝色的,布尔类型也是蓝色的,undefined和null是灰色的。
数据类型转换
转换成字符串类型(3种)
- 数据.toString()方法
- 有些值没有toString(),这时(undefined、null)就用String()
- +号拼接字符串方式:当+两边,一个操作符是字符串类型,一个操作符是其他类型的时候,会先把其他类型转换成字符串再进行字符串拼接,返回字符串。
转换成数值类型(3种)
1. Number(数据)方法
转型函数Number()可以用于任何数据类型,将其他数据类型转为数字。
- 字符串:
- 纯数字字符串 → 对应数字
- 空字符串和空白字符串 → 0
- 非空非纯数字字符串 → NaN
- 布尔值
- true → 1
- false → 0
- undefined → NaN
- null → 0
2. parseInt()方法
字符串转整数方法
- 方法:
- 对数字取整功能,直接舍弃小数部分,只保留整数
- 将字符串转为整数数字,也包含取整功能
- 注意:字符串中,必须是纯数字字符串或者数字字符开头的字符串,才能转换为正常数字,且只取整数部分,如果不是数字打头的字符串,会转换成NaN.
3. parseFloat()方法
字符串转浮点数方法
- 作用:将字符串转为浮点数数字
- 要求:满足浮点数数字字符必须在字符串开始,如果不在开始返回NaN。
- 应用:工作中,利用变量接收prompt()语句返回的用户输入的数据,检测数据类型后,得到的是String.
<!-- 要将String转换成整数之后,再做算术运算,不然会出错 --> var num = parseInt(prompt("请输入您的年龄")); var age = num + 50;
转换成布尔类型
Boolean(数据)方法
- 转型函数Boolean()可以用于任何数据类型,将其他数据类型转为布尔类型的值。
- 转为false: NaN、0、空字符串、null、undefined
- 转为true: 非0 非NaN数字、非空字符串