上次我们说了js一点点的小知识
这次我们来认识一下变量~
首先,什么是变量?
变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据;变量其实就相当于一个容器,内部可以存储任意类型的数据,使用变量时,用的是内部存储的数据。
- 简单来说就是我现在有一个东西需要暂时存储起来,比如说就是我有一个苹果放到篮子里,我后续想要吃这个苹果,我就再从篮子里拿出来。
其次,就是我们为什么要定义变量?
就是使用变量可以方便的获取或者修改内存中的数据。
那我们该如何定义变量呢?
使用一个 var 的关键字进行定义,后面必须加一个空格,空格后面自定义变量名
-
var a; var b; var c;
我们定义变量以后就应该知道变量如何赋值
- 变量定义之后,初始时没有进行赋值,内部有一个默认存储的值叫 undefined(未定义) 表示内部未赋值,但可以存储数据了。
- 变量赋值的方式:通过等号 = 赋值,等号右边的值赋值给左边的变量 ==(等号在 JS 中叫做 赋值号;书写时,等号 = 两侧习惯书写一个空格)==
-
var a; a = 1; var b = 2;
接下来就是使用变量如何命名啦~
直接写变量名就能使用变量;变量在使用前,必须先有定义,如果没有定义,会出现引用错误。
顺便讲解一下变量名的命名规则和命名规范
- 由字母、数字、下划线、$符号组成,不能以数字开头
- 字母区分大小写
- 不能是关键字和保留字
- 关键字指的是js中有特殊功能的小词语,比如var、for等
- 保留字指的是现在没有特殊功能,但是将来新语法中有可能作为关键字使用
- 变量名必须有意义
- 遵守驼峰命名法
接着我们介绍一下js的数据类型以及为什么要检测数据类型和应该如何检测数据类型?
js的数据类型
- 数据类型分类(以基本数据类型为主)
- Number 数字类型
- 不区分整数、浮点数、特殊值,都是 Number 类型
- String 字符串类型
- 所有的字符串都是 String 类型
- undefined undefined类型
- undefined本身就是一个数据,表示未定义,变量只声明不赋值的时候,值默认是 undefined
- Boolean 布尔类型
- Boolean 字面量:只有 true 和 false 两个字面量的值,必须是小写字母
- 计算机内部存储:true 为 1,false 为 0
- null null类型
- null 本身就是一个数据
- 从逻辑角度,null 值表示一个空对象指针
- 如果定义的变量准备在将来用于保存对象,最好该变量初始化为 null
- Object 对象类型
- Number 数字类型
为什么要进行数据类型的检测?
- JS语言是一门动态类型的语言,变量并没有一个单独的数据类型,而是会随着内部存储数据的变化,数据类型也会发生变化
- 变量的数据类型,与内部存储数据有关
- 将来使用变量时,需要知道内部存储的数据是什么类型,避免程序出错
* 如何检测数据类型?
- 检测方式:在 typeof 后面加小括号执行,将要检测的数据放在小括号内部 *eg:typeof(检测的数据)
最后我们应该如何让进行数据类型的转换?
转数值
- Number(数据)方法
- 转型函数Number()可以用于任何数据类型,将其他数据类型转为数字
- 字符串:纯数字字符串转为对应数字,空字符串和空白字符串转为0,非空非纯数字字符串转为NaN
- 布尔值:true转为1,false转为0
- undefined:转为NaN
- null:转为0
- parseInt()方法:字符串转整数方法
- 对浮点数进行取整操作
- 对数字取整直接舍弃小数部分,只保留整数
- 将字符串转为整数数字
- 将字符串转为整数数字,也包含取整功能
- 字符串中,必须是纯数字字符串或者数字字符开头的字符串,才能转换为正常数字,且只取整数部分
- 如果不是数字打头的字符串,会转换为NaN
- 对浮点数进行取整操作
- parseFloat()方法:字符串转浮点数方法
- 将字符串转为浮点数数字
- 满足浮点数数字字符必须在字符串开始,如果不在开始返回值都是NaN
转字符串
- 变量.toString()方法
- String(变量)方法,有些值没有toString(),这个时候可以使用String()。比如
undefined和null - + 号拼接字符串方式
- num + “” ,当 + 两边一个操作符是字符串类型,一个操作符是其他类型的时候,会先把其他类型转换成字符串在进行字符串拼接,返回字符串
转布尔
- Boolean(变量)方法
- 转型函数Boolean()可以用于任何数据类型,将其他数据类型转为布尔类型的值
- 转为false:NaN、0、“”空字符串、null、undefined
- 转为true:非0 非NaN数字、非空字符串