1. 变量(重点)
-
变量指的是在程序中保存数据的一个容器
-
变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据
-
也就是说,我们向内存中存储了一个数据,然后要给这个数据起一个名字,为了使我们以后再次找到它
-
语法:
var 变量名 = 值
1. 定义变量及赋值
// 定义一个变量
var num;
// 给一个变量赋值
num = 100;
// 定义一个变量的同时给其赋值
var num2 = 200
- 注意
- 一根变量名只能存储一个值
- 当再次给一个变量赋值的时候,前面一次的值就没有了
- 变量名称区分大小写(
JS
严格区分大小写)
2. 变量的命名规则和命名规范
-
规则:必须遵守的,不遵守就出错
- 变量名可以包含字母,数字,下划线_,$
- 开头不能是数字
- 不能使用关键字和保留字
- 严格区分大小写
-
规范:建议遵守的(开发者默认),不遵守不会报错
- 变量名尽量有意义
- 遵循驼峰命名规则,由多个单词组成的时候,从第二个单词开始首字母大写
- 不要使用中文
2. 数据类型(重点)
- 是指我们存储在内存中的数据的类型
- 是我们通常分为两大类 基本数据类型 和 引用数据类型
1.基本数据类型
- 数值类型(Number)
一切数字都是数值类型(包括二进制,十进制,十六进制等)
NaN
(not a number),一个非数字 - 字符串类型(String)
被引号包裹的所有内容(可以是单引号也可以是双引号)
使用:可以使用str.length
来访问字符串长度. - 布尔类型(Boolean)
只有两个(
true
或者false
) - null类型(null)
只有一个,就是
null
,表示定义的空值 - undefined类型(undefined)
只有一个,就是`undefined``,表示声明未赋值
- 若未声明,则报错
2.引用数据类型(Object)
- 对象类型(object)
- 数组类型(array)
- 函数类型(function)
- Date
- RegExp
3. 判断数据类型
-
typeof
相关知识(判断数据类型)
它只在乎变量的值(栈内存里的值),他在给变量未赋值时或者纯粹没有定义变量时,变量的值都没有被定义,因此都输出undefined。 而引用数据类型存储在堆内存,栈内存存储的只是地址,所以它们都是object1. 两种判断类型的写法:typeof(变量) / typeof 变量 2. 判断结果(只有六种):数字(Number)、字符串(String)、布尔(Boolean)、undefined(undefined)、Array/Object/null(Object) 3. 判断的结果都是字符串String类型
-
isNaN
(not a number)(判断一个数据是不是不是数字)1. 写法:isNaN(变量) 2. 判断结果:true / false 3. 它会先把这个变量转换为Number,然后判断是不是NaN(仅判断用,判断不影响值的类型)。
4. 数据类型转换
- 其他数据类型转成数值
-
number(变量)
- 强制转换
- 遇到不可转换的(undefined和大多数字符串)都会返回
NaN
-
parseInt(变量)
- 不仅能转换成数字,还可以把其他进制的数转换成十进制。
注:parseInt(12,8)是指把八进制的12转换成十进制(结果是10)
注:parseInt(3,2)中3明显不是2进制的数字,不合法,所以结果是NaN
注:特例:parseInt(3,0)中0进制很特殊,有的浏览器觉得它是NaN,有的觉得是它是3(比如谷歌)
- 不仅能转换成数字,还可以把其他进制的数转换成十进制。
-
parseFloat(变量)
- 从第一位开始检查,是数字就转换,直到一个不是数字的内容
- 开头就不是数字,那么就返回
NaN
- 认识一次小数点
-
除了加法以外的数学运算
- 运算符两边都是可运算数字才行
- 如果运算符任何一边不是一个可运算数字,那么就会返回
NaN
- 加法不可以使用(除过a++,++a),正号“+”可以使用
-
- 其他数据类型转成字符串
变量.toString()
这种方法旨在把变量的值输出成文本,所以那种没有值(undefined)或者是空值(null)的情况会报错
String(变量)
强制转换,所有数据类型都可以
- 使用加法运算
在 JS 里面,
+
有两个含义
1. 字符串拼接:只要将+
任意一边是字符串,就会进行字符串拼接
2. 加法运算:只要+
两边都是数字的时候,才会进行数字运算
- 其他数据类型转成布尔
Boolean(变量)
在 js 中,只有
''
、0
、NaN
、null
、undefined
、这些都是false
其余都是true