目录
一、JavaScript变量
1、定义
变量,就是一个用于存放数值的容器。这个数值可能是一个用于累加计算的数字,或者是一个句子中的字符串。
变量的独特之处就在于它存放的数值是可以改变的。但是变量能存储任何东西——不只是字符串和数字,变量可以存储更复杂的数据,甚至是函数。
2、使用
- 声明变量
语法:在var或let关键字之后加上这个变量的名字
例:
var myName;
let myAge;
- 注意:在JavaScript中,所有代码指令都会以分号结尾 (;) — 如果忘记加分号,你的单行代码可能执行正常,但是在多行代码在一起的时候就可能出错。所以,最好是养成主动以分号作为代码结尾的习惯。
- 变量赋值
在声明变量后可以给变量赋值(用等于号=来为变量赋值,等号左边的是变量的名称,等号右边是要赋予变量的值)。
例:
myName = 10;
myAge = 18;
- 初始化变量
在声明变量的同时进行赋值。
例:
var myName = 10;
let myAge = 18;
3、var、let和const关键字
在最初创建JavaScript时,是只有var的,在 ECMAScript6(ES6)发布之后,新增了 let 和 const 两个关键字来声明变量。
- 在ES5中,顶层对象的属性和全局变量是等价的,用var声明的变量既是全局变量,也是顶层变量;使用var,我们能对一个变量进行多次声明,后面声明的变量会覆盖前面的变量声明;但是在函数中使用var声明变量时,该变量是局部的。
- 使用 let 关键字声明的变量只在其所在的代码块中有效(类似于局部变量),并且在这个代码块中(即相同作用域),同名的变量不能重复声明;
- const 关键字的功能和 let 相同,但使用 const 关键字声明的变量还具备另外一个特点,那就是 const 关键字定义的变量,一旦定义,就不能修改(即使用 const 关键字定义的为常量),它声明的是一个只读的常量。
4、变量命名的规则
- 由字母、数字、下划线和美元符号($)组成
- 严格区分大小写
- 不能以数字开头
- 不能是关键字、保留字
- 要尽量做到“见其名知其意”
- 建议遵循驼峰命名法,首字母小写,后面的单词首字母大写
二、JavaScript数据类型
JavaScript是一种弱类型语言,不用提前声明变量的数据类型。在程序运行过程中,变量的数据类型会被自动确定。
JavaScript数据类型分为两大类:基本数据类型 和 复杂(引用)数据类型。
- 基本数据类型
- Boolean(布尔型)
- 通常用于逻辑判断,它有两个值:true和false,表示事物的“真”和“假”。
- String(字符串型)
- 在JavaScript中使用单引号或双引号来包裹字符串。
- Number(数字型)
- 可以用来保存整数或浮点数(小数)。
- 字符串长度:字符串是由若干字符组成的,这些字符的数量就是字符串的长度。通过字符串的length属性可以获取整个字符串的长度。
- 范围:
-
最大值:Number.MAX_VALUE,输出结果:1.7976931348623157e+308
最小值:Number.MIN_VALUE,输出结果:5e-324
-
- 3个特殊值:Infinity和- Infinity 和NaN
-
Infinity(无穷大) :如Number.MAX_VALUE*2
- Infinity(无穷小) :如-Number.MAX_VALUE*2
NaN(非数值): 如'abc' – 100
isNaN:用来判断一个变量是否为非数字的类型,返回值为true表示非数字,false表示是数字
-
- Null(空型)
- Undefined(未定义型)
- 如果一个变量声明后没有赋值,则变量的值就是undefined。
- Boolean(布尔型)
- 复杂数据类型
- Object(对象)
三、JavaScript数据类型转换
1、转换为字符串型
- 利用“+”拼接字符串(最常用的一种方式)
- 利用toString()转换成字符串
- 利用String()转换成字符串
2、转换为数字型
- 使用parseInt()将字符串转为整数
- 使用parseFloat()将字符串转为浮点数
- 使用Number()将字符串转为数字型
- 利用算术运算符(-、*、/)隐式转换
3、转换成布尔型
- 转换为布尔型使用Boolean(),在转换时,代表空、否定的值会被转换为false,如空字符串、0、NaN、null和undefined,其余的值转换为true。
四、JavaScript运算符
1、算数运算符
- 加:+
- 减:-
- 乘:*
- 除:/
- 取余:%
- 算术运算符的注意事项:
- 进行四则混合运算时,运算顺序要遵循数学中“先乘除后加减”的原则
- 在进行取模运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关
- 在开发中尽量避免利用浮点数进行运算,因为有可能会因JavaScript的精度导致结果的偏差
- 使用“+”和“-”可以表示正数或负数
2、递增和递减运算符
- 递增运算符:++;递减运算符:--
- 属于一元运算符
- 前置递增(递减)运算符:递增和递减运算符写在变量前面,返回的是计算后的结果
- 后置递增(递减)运算符:递增和递减运算符写在变量后面,返回的是计算前的结果
- 递增和递减运算符的优先级高于“+”“-”等运算符
3、比较运算符
- 比较运算符用于对两个数据进行比较,其结果是一个布尔值,即true或false
- 常用的比较运算符及用法
运算符 | 运算 | 示例 | 结果 |
> | 大于 | 5 > 5 | false |
< | 小于 | 5 < 5 | false |
>= | 大于或等于 | 5 >= 5 | true |
<= | 小于或等于 | 5 <= 5 | true |
== | 等于 | 5 == 4 | false |
!= | 不等于 | 5 != 4 | true |
=== | 全等 | 5 === 5 | true |
!== | 不全等 | 5 !== '5' | true |
4、逻辑运算符
- 逻辑运算符用于对布尔值进行运算,其返回值也是布尔值。
- 与:&&
- 或:||
- 非:!
5、赋值运算符
- 赋值运算符用于将运算符右边的值赋给左边的变量。
- 常用的逻辑运算符
运算符 | 运算 |
= | 赋值 |
+= | 加并赋值 |
-+ | 减并赋值 |
*= | 乘并赋值 |
/= | 除并赋值 |
%= | 模并赋值 |
+= | 连接并赋值 |
<<= | 左移位并赋值 |
>>= | 右移位并赋值 |
>>>= | 无符号右移位并赋值 |
&= | 按位“与”并赋值 |
^= | 按位“异或”并赋值 |
|= | 按位“或”并赋值 |
6、三元运算符
- 三元运算符是一种需要三个操作数的运算符,运算的结果根据给定条件决定。
- 语法格式:条件表达式?表达式1:表达式2
- 语法说明:先求条件表达式的值,如果为true,则返回表达式1的执行结果;如果条件表达式的值为false,则返回表达式2的执行结果。
7、运算符优先级
- 是指表达式中所有运算符参与运算的先后顺序
- 优先级如下
结合方向 | 运算符 | 结合方向 | 运算符 |
无 | () | 左 | == != === !== |
左 | . [] new(有参数,无结合性) | 左 | & |
右 | new(无参数) | 左 | ^ |
无 | ++(后置) --(后置) | 左 | | |
右 | ! ~ -(负数) +(正数) ++(前置) --(前置) typeof void delete | 左 | && |
右 | ** | 左 | || |
左 | * / % | 右 | ?: |
左 | + - | 右 | = += = *= /= %= <<= >>= >>>= &= ^= |= |
左 | << >> >>> | 左 | , |
左 | < <= > >= in instanceof |