JavaScript流程控制+数组+函数+作用域和预解析

一.JavaScript 流程控制

  • 顺序流程控制

  • 分支流程控制

        if语句:

  1. if单分支语句
  2. if else双分支语句
  3. if else if多分支语句

        三元表达式:        条件表达式 ? 表达式1 : 表达式2


        switch语句:多分支语句,用于多选一0

  • 循环流程控制

  1.         for循环
  2.         while循环
  3.         do...while循环:至少会执行一次循环体

continue关键字:退出当前次的循环,但是还会继续下一次循环

break关键字:用于立即跳出整个循环(循环结束)


二.JavaScript 数组

1.利用new创建数组

 2.利用数组字面量创建数组

JavaScript流程控制+数组+函数+作用域和预解析_第1张图片

获取数组元素: 数组名[索引号] 

索引(下标):从0开始,可以通过索引来获取数组元素

遍历数组:把数组元素从头到尾访问一次

数组长度: 数组名.length 能够动态监测数组元素的个数

数组新增元素:

  • 修改length长度来实现数组扩容(length属性是可以读写的)
  • 修改数组索引的方法(直接给出索引号,追加数组元素)

三.JavaScript 函数

1.声明函数: function

JavaScript流程控制+数组+函数+作用域和预解析_第2张图片

2.调用函数:

JavaScript流程控制+数组+函数+作用域和预解析_第3张图片


3.实参和形参的匹配问题:

JavaScript流程控制+数组+函数+作用域和预解析_第4张图片

 return只能返回一个值,当有多个值的时候会返回最后一个值

没有return,则返回undefined 


4.arguments对象:

存储了传递的所有的实参


函数可以调用另外一个函数(函数可以相互调用)


函数的两种的声明方式:

1.利用函数关键字自定义函数(命名函数)

2.函数表达式


四.JavaScript作用域

目的是减少命名冲突

  • 全局作用域:整个script标签 或者是一个单独的js文件
  • 局部作用域:在函数内部就是局部作用域 这个代码的名字只在函数内部起效果和作业

  • 全局变量:在全局作用域下的变量
  • 局部变量:在局部作用域下的变量

注意:函数的形参也可以看作是局部变量

全局变量只有浏览器关闭的时候才会销毁,比较占内存资源


作用域链:内部函数访问外部函数的变量,采取的是链式查找的方式来决定取哪个值,这种结构我们称为作用域链  (就近原则)


五.JavaScript预解析

  1. 预解析:        js引擎会把js 里面所有的  var 还有 function  提升到当前作用域的最前面
  2. 代码执行:        按照代码书写的顺序从上往下执行

预解析分为 变量预解析 与 函数预解析

  • 变量预解析:    就是把所有的变量声明提升到当前的作用域最前面    不提升赋值操作
  • 函数预解析:    就是把所有的函数声明提升到作用域最前面      不调用函数

函数表达式调用必须写在函数表达式下面

你可能感兴趣的:(javascript,前端,web,开发语言,ecmascript)