变量 数组 while 循环 for循环知识概括

344 阅读7分钟

1. 变量

1.1 变量名的命名规则

  1. 只能是字母、数字、下划线、$,且不能能数字开头。
  2. 字母区分大小写,如 Age 和 age 是不同的变量。
  3. JavaScript 内部已占用于单词(关键字或保留字)不允许使用。
  4. 尽量保证变量具有一定的语义,见字知义。

2. 常量

概念:使用const声明的变量称为"常量"。

使用场景: 当某个变量永远不会改变的时候,就可以使用const来声明

注意: 常量不允许重新赋值, 声明的时候必须赋值(初始化)

3. 数据类型

数据类型可以通过typeof关键字检测数据类型

3.1 字符串类型

通过单引号( '') 、双引号( "")或反引号包裹的数据都叫字符串。

注意:

  1. 无论单引号或是双引号必须成对使用。
  2. 单引号/双引号可以互相嵌套,但是不以自已嵌套自已。
  3. 必要时可以使用转义符 \,输出单引号或双引号。

3.2 undefined

未定义是比较特殊的类型,只有一个值 undefined,只声明变量,不赋值的情况下,变量的默认值为 undefined

4. 运算符

4.1 赋值运算符

赋值运算符:对变量进行赋值的运算符

赋值运算符(=)将等号右边的值赋予给左边, 要求左边必须是一个容器

其它赋值运算符:+=,-=,*=,/=,%=;使用这些运算符可以在对变量赋值时进行快速操作

4.2 一元运算符

一元运算符:正负号

前置自增:++i

后置自增:i++

前置自增和后置自增单独使用没有区别

4.3 比较运算符

4.3.1 关系运算符

包括:>, >= ,< ,<==

4.3.2 相等运算符

包括:==, !=, ===, !==

比较结果为boolean类型,即只会得到 true 或 false

其中:

= 单等是赋值

== 是判断

=== 是全等

开发中判断是否相等,强烈推荐使用 ===

4.4 逻辑运算符

逻辑运算符用来解决多重条件判断

符号名称口诀
&&逻辑与一假则假
||逻辑或一真则真
!逻辑非真变假,假变真

4.5 运算符优先级

snipaste20220408_104646.jpg

5. 语句

5.1 表达式和语句

表达式是可以被求值的代码,JavaScript 引擎会将其计算出一个结果。(简单理解表达式就是一个式子)。

语句是一段可以执行的代码。(比如: prompt() 可以弹出一个输入框)。

5.2 分支语句

5.2.1 if分支

if语句有三种使用:单分支、双分支、多分支。

单分支

语法:
if(条件) {
    满足条件执行的代码
} 

括号内的条件为true时,进入大括号里执行代码

小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型

如果大括号只有一个语句,大括号可以省略,但是,俺们不提倡这么做~ 示例代码:

    if (false) {
        console.log('执行语句:你真帅')
    } 
    if (true) {
        console.log('执行语句:齐先生真帅')
    } 
    if (2 === '2') {
     console.log('执行语句:齐先生真帅')
     }
    //  1. 除了0 所有的数字都为真
    if (0) {
        console.log('执行语句:齐先生真帅')
       }
    // 2.除了 '' 所有的字符串都为真 true
    if ('') {
      	console.log('执行语句:齐先生真帅')
    	}
    if ('齐先生') {
        console.log('执行语句:齐先生真帅')
        }

双分支

语法:

if (条件) {
    满足条件执行的代码
} else {
   不满足条件执行的代码
} 

5.2.2 三元运算符

语法:

条件 ? 满足条件执行代码1 : 不满足条件执行代码2

5.2.3 switch语句

语法:
switch (表达式) {
      case1:
        代码1
        break  
      case2:
        代码2
        break  
      case3:
        代码3
        break  
      default:
        代码n
        break
    }

找到跟小括号里表达式结果(数据)全等的case值,并执行里面对应的代码。

若没有全等 === 的则执行default里的代码。

例:数据若跟值2全等,则执行代码2。

注意事项:

  1. switch case语句一般用于等值判断,不适合于区间判断。

  2. switch case一般需要配合break关键字使用 没有break会造成case穿透。

6. 循环

循环作用:重复执行一些操作,如while循环 for循环.

6.1 while循环

语法:
while (循环条件) {

    重复执行的代码(循环体)
    
}

循环三要素:

  1. 变量起始值。

  2. 终止条件(没有终止条件,循环会一直执行,造成死循环)。

  3. 变量变化量(用自增或者自减)。

循环退出

continue 退出本次循环,一般用于排除或者跳过某一个选项的时候, 可以使用continue。

break 退出整个循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用。

if 多分支和switch的区别

  1. 共同点
  • 都能实现多分支选择, 多选1。
  • 大部分情况下可以互换。
  1. 区别:
  • switch…case语句通常处理case为比较确定值的情况,而if…else…语句更加灵活,通常用于范围判断(大于,等于某个范围)。

  • switch 语句进行判断后直接执行到程序的语句,效率更高,而if…else语句有几种判断条件,就得判断多少次。

  • switch 一定要注意 必须是 === 全等,一定注意 数据类型,同时注意break否则会有穿透效果。

  1. 结论:
  • 当分支比较少时,if…else语句执行效率高。

  • 当分支比较多时,switch语句执行效率高,而且结构更清晰。

7. for语句

1.1 for语句的基本使用

  1. 语法格式
  for(起始值; 终止条件; 变化量) {
  
      要重复执行的代码
      
   }

8. 数组

定义数组:

   1. 语法,使用 [] 来定义一个空数组
   
   定义一个空数组,然后赋值给变量 classes
   
   let classes = [];

访问数组:

  // 以下的名字是小说里的名字 如有侵权,请告知!
  let classes = ['平安', '宁姚', '阮秀', '裴钱', '小米粒']
  
  // 1. 访问数组,语法格式为:变量名[索引值]
  document.write(classes[0]) // 结果为:平安
  document.write(classes[1]) // 结果为:宁姚
  document.write(classes[4]) // 结果为:小米粒
  
  // 2. 通过索引值还可以为数组单重新赋值
  document.write(classes[3]) // 结果为:裴钱
  // 重新为索引值为 3 的单元赋值
  classes[3] = '小裴钱'
  document.wirte(classes[3]); // 结果为: 小裴钱

数组做为数据的集合,它的单元值可以是任意数据类型:

  // 6. 数组单值类型可以是任意数据类型

  // a) 数组单元值的类型为字符类型
  let list = ['HTML', 'CSS', 'JavaScript']
  // b) 数组单元值的类型为数值类型
  let scores = [78, 84, 70, 62, 75]
  // c) 混合多种类型
  let mixin = [true, 1, false, 'hello']

数组在 JavaScript 中并不是新的数据类型,它属于对象类型。 数组做为对象数据类型,不但有 length 属性可以使用,还提供了许多方法:

  1. push 动态向数组的尾部添加一个单元 arr.push(添加的内容)方法将一个或多个元素添加到数组的末尾, 并返回该数组的新长度\
  2. unshit 动态向数组头部添加一个单元 arr.unshit(新增的内容)方法将一个或多个元素添加到数组的开头, 并返回该数组的新长度\
  3. pop 删除最后一个单元 arr.pop()方法是从数组中删除最后一个元素, 并返回该元素的值, 括号里不带参数\
  4. shift 删除第一个单元 arr.shift()方法是从数组中删除第一个元素, 并返回该元素的值, 括号里不带参数\
  5. splice 动态删除任意单元
  let arr = ['html', 'css', 'javascript']

  // 1. push 动态向数组的尾部添加一个单元
  arr.push('Nodejs')
  console.log(arr)
  arr.push('Vue')

  // 2. unshit 动态向数组头部添加一个单元
  arr.unshift('VS Code')
  console.log(arr)
  
  // 3. splice 动态删除任意单元
  arr.splice(2, 1) // 从索引值为2的位置开始删除1个单元
  console.log(arr)

  // 4. pop 删除最后一个单元
  arr.pop()
  console.log(arr)

  // 5. shift 删除第一个单元
  arr.shift()
  console.log(arr)