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

ES6笔记1

1. var 存在变量提升,let声明变量,不存在变量提升

    console.log(a);  // 输出undefined
    var a = 10;
    var a; // 声明被提升到顶部
    console.log(a);  // 这时候a还没赋值,所以是undefined
    a = 10; // 赋值留在原地
    
    console.log(a);  
    let = 10; 报错

2.  let是一个块作用域
     用{ }包裹的代码块(比如 if、for、while 里的大括号),会形成一个独立的作用域
     用 let/const 声明的变量,只能在这个块里访问,块外面用不了
     
    if (true) {
   var a = 1; // var声明的a在函数作用域里(或全局)
   let b = 2; // let声明的b只在这个if块里有效
   }
   console.log(a);   // 1(var的a跑出来了)
   console.log(b);   // 报错!b在if块外不存在

3. let不能重复声明

4. const 声明常量,一旦被声明,无法修改,其他同let
    
    const person = {
    name: '小马哥'
    };
   // 若想修改对象属性,可这样:person.name = 'alex'; 
    person = {
    age: 20
    };  //这样不行
    console.log(person); 

5. 作用1:for循环是个经典例子,解决var变量提升的问题
    作用2:不会污染全局变量
    
    建议:在默认情况下用const,当知道变量值需要被修改时用let

6. 模板字符串:使用 tab 键上面的反引号 ``, 插入变量时使用 ${变量名}
    const oBox = document.querySelector('.box');
    let id = 1,
    name = '小马哥';
    let htmlStr = `<ul>
    <li>
        <p id=${id}>${name}</p>
    </li>
   </ul>`;
    oBox.innerHTML = htmlStr;

7. 带参数默认值的函数
    function add(a, b = 20) {
    return a + b;
    }
    console.log(add(30));   50

8. 默认的表达是也可以是一个函数
    function add(a, b = getVal(5)) {
    return a + b;
    }

    function getVal(val) {
    return val + 5;
    }
    console.log(add(10));  20

9. 剩余参数:由3个点...和一个紧跟着的具名参数指定 ...keys

ES6写法:

剩余参数(Rest Parameters)(即 ...keys 语法)相比传统的 arguments 对象,主要解决了以下几个痛点:

1、arguments 是类数组对象,没有数组的方法(如 mapfilterforEach 等),操作不便

2、arguments 包含所有参数(包括函数定义的命名参数),需要手动排除第一个参数(如 obj

3、箭头函数没有自己的 arguments,只能访问外层函数的 arguments,容易导致混淆

4、使用 arguments 时,函数定义无法明确表达需要接收多少个参数

10. 扩展运算符...

      剩余运算符:把多个独立的参数合并到一个数组中

      扩展运算符:将一个数组分割,并将各个项作为分离参数传给函数

11. ES6箭头函数()=>{}

返回一个对象:

闭包函数:


    


   
 

http://www.lryc.cn/news/577146.html

相关文章:

  • ES6从入门到精通:箭头函数
  • 【PHP】.Hyperf 框架-collection 集合数据(内置函数归纳-实用版)
  • uniapp小程序蓝牙打印通用版(集成二维码打印)
  • Day113 切换Node.js版本、多数据源配置
  • 服务器被入侵的常见迹象有哪些?
  • AdGuard Home 安装及使用
  • SimLOD代码精读(二)建立Octree之Splitting Pass分裂阶段
  • 永磁同步电机无速度算法--基于带相位补偿的鉴相重构锁相环的滑模观测器
  • 华为云Flexus+DeepSeek征文 | 基于华为云Dify-LLM搭建知识库问答助手
  • 深入解析TCP:可靠传输的核心机制与实现逻辑
  • LaTeX 常用宏包(数学论文场景)
  • MySQL索引失效场景
  • NLP自然语言处理 01 文本预处理
  • 现代 JavaScript (ES6+) 入门到实战(三):字符串与对象的魔法升级—模板字符串/结构赋值/展开运算符
  • 【c/c++1】数据类型/指针/结构体,static/extern/makefile/文件
  • 【c/c++3】类和对象,vector容器,类继承和多态,systemd,stdboost
  • PCB工艺学习与总结-20250628
  • 【blender】使用bpy对一个obj的不同mesh进行不同的材质贴图(涉及对bmesh的操作)
  • 利用deepseek学术搜索
  • git lfs 提交、拉取大文件
  • 现代 JavaScript (ES6+) 入门到实战(五):告别回调地狱,Promise 完全入门
  • 机器学习在智能电网中的应用:负荷预测与能源管理
  • Redis Cluster Gossip 协议
  • ROS 避障技术介绍
  • spring-ai-alibaba 1.0.0.2 学习(三)——配置
  • Transformer超详细全解!含代码实战
  • Python爬虫-爬取汽车之家全部汽车品牌及车型数据
  • 机电一体化论文写作实战指南:从创新设计到工程验证的完整路径
  • 爬虫实战之图片及人物信息爬取
  • VMware设置虚拟机为固定IP