博主信息
博文 20
粉丝 0
评论 1
访问量 17425
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
JS 中变量、常量、函数、作用域及闭包的初步认识
zg的php学习
原创
606人浏览过

JS 中变量、常量、函数、作用域及闭包的初步认识

变量和常量的区别

  • ES6 中,变量的声明使用 let 关键字,常量使用 const 关键字
  • 变量可以先申明后赋值,常量在声明的同时必须赋值
  • 变量的值可以被多次修改,常量的值不能被修改

函数的种类

1.普通函数

语法:

  1. function sum(n1, n2) { return n1 + n2; }

2.匿名函数

语法:

  1. function (n1, n2) { return n1 + n2; };

3.立即执行函数(IIFE)

语法:

  1. (function (n1, n2) { return n1 + n2; })(10,20);

4.箭头函数

箭头函数是对匿名函数的一种简化方式

  1. function (n1, n2) { return n1 + n2; };
  2. <!--用箭头函数简化-->
  3. (n1, n2) => n1 + n2;

5.标签函数

标签函数就是使用模板字符串做为参数的函数

  1. //函数定义
  2. function sum(strings, number, price) {
  3. return `${strings[0]}${number}
  4. ${strings[1]}${price}
  5. 总金额:${number * price}`;
  6. }
  7. //函数调用
  8. sum`数量:${10}单价:${1900}`;

作用域和闭包

作用域主要有以下二种:

  • 全局作用域:函数外定义的,全局都能访问
  • 函数作用域:函数内定义的,只能在当前函数内部访问

由于作用域的存在,函数在查找变量时,会从当前作用域开始,逐级向上查找,形成一条作用域链。当满足特定条件时,函数会形成闭包。形成闭包的二个基本条件:

  • 存在嵌套函数
  • 子函数引用外部函数的自由变量(非全局)

简单理解:闭包就是子函数引用了外部作用域(非全局)的自由变量,导致外部函数无法被释放。

示例:

  1. //这个 函数形成闭包
  2. function funcA() {
  3. let i = 0;
  4. function funcB() {
  5. return (i = i + 1);
  6. }
  7. return funcB;
  8. }
  9. //函数调用
  10. let f = funcA(); //调用funcA,返回 functB,执行完成后funcA不会被释放,因为其内部变量i被funcB引用着
  11. let result = f(); //相当于调用functB,此时返回值=1
  12. result = f(); //相当于再次调用functB,此时返回值=2
  13. result = f(); //相当于再次调用functB,此时返回值=3
  14. console.log(result);
批改老师:PHPzPHPz

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学