当前位置: 首页 > news >正文

JavaScript基础pink[3]-函数/作用域/预解析

一、函数

function 函数名(){函数体
}
函数传参

形参:声明函数时写在函数名右边小括号里的叫形参
实参:调用函数时写在函数名右边小括号里的叫实参

1、函数返回值(return

注意事项:

1、返回多个值,返回结果是最后一个值

2、如果没有return 返回undefined

2、arguments

存储了传递的所有实参,展示形式是个伪数组

 function fn(){console.log(arguments);console.log(arguments.length);console.log(arguments[2]);for (var i = 0;i<arguments.length;i++){console.log(arguments[i]);}}fn(1,2,3)

(1)具有数组的length属性

(2)按照索引的方式存储

(3)没有真正数组的方法 pop() push()等

函数可以调另一个函数

3、函数两种声明方式

(1)函数关键字定义函数

function fn(){}

(2)函数表达式 匿名函数

var fun = function() {};

fun是变量名 不是函数名

定义:将匿名函数赋值给一个变量,并且通过变量名称进行调用 我们将这个成为函数表达式

let fn = function ( ) {// 函数体
}

二、作用域

  • 全局作用域
  • 局部作用域
  • 块级作用域{} if{} for{},现阶段js没有块级作用域,es6新增
    特殊情况:局部变量或者块级变量 没有声明直接赋值的当全局变量看
    变量访问原则:采取就近原则的方式来查找变量最终的值

三、预解析

  1. js引擎运行js 分为两步:预解析 代码执行
  2. 预解析 js引擎会把js 里面所有的var 还有function 提升到当前作用域的最前面
  3. 代码执行 按照代码书写的顺序从上往下执行
  • 变量提升 把所有的变量声明提升到当前作用域最前面,不提升赋值操作
  • 函数提升 把所有的函数声明提升到当前作用域最前面 不调用函数

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

相关文章:

  • 【硬核数学】3. AI如何应对不确定性?概率论为模型注入“灵魂”《从零构建机器学习、深度学习到LLM的数学认知》
  • MCU、LIN收发器与LIN总线是如何进行交互的?
  • 设计模式(五)
  • php-m和phpinfo之间不一致的问题的可能原因和解决办法
  • 用SolidWorks 与 Arduino设计的一款简易小船
  • Leetcode百题斩-双指针
  • 30秒释放C盘空间,电脑提速100%
  • 基于Python的高级IP扫描工具设计与实现
  • 《GAP 协议:设备角色与发现流程的设计思路》面试高频考点与真题解析
  • 自动化提示工程:未来AI优化的关键突破
  • MybatisPlus-02.快速入门-入门案例
  • 茶叶根茎分割数据集介绍与应用
  • Vue中keep-alive结合router实现部分页面缓存
  • 【stm32】HAL库开发——单片机工作模式
  • stm32之普通定时器
  • 构建创意系统:驾驭Audition与Photoshop的AI之力,洞悉原子化设计哲学
  • 基于IEC61499实现的工业机器视觉方案
  • Java面试宝典:基础四
  • 复旦大学经济学院系统思考训练
  • 【三维重建】Deformable Beta Splatting