• 【前端进阶——ES6基础①】ES6究竟有什么不同呢!


    • 💂 个人主页:Aic山鱼 
    •  个人社区:山鱼社区

    • 💬 如果文章对你有所帮助请点个👍吧!
    • 欢迎关注、点赞、收藏(一键三连)和订阅专

    目录

    前言

    什么是ecmascrpit

    一,let关键字的特点

    1.不能重复声明变量

     2.块级作用域

    3.不存在变量提升

     4.不影响作用域链

     二,let的使用

    三,const 声明常量以及特点

    四,const的变量解构赋值

    1.数组的结构

     2.对象解构赋值

    五,ES6新增字符串声明方式

    1.反引号

    2.新特性

     3.变量拼接

    六,对象的简化写法

     七,箭头函数

    写在最后 


    前言

    ES全称EcmaScript,是脚本语言的规范,而平时经常编写的JavaScript,是EcmaScript的一种实现,所以ES新特性其实指的就是JavaScript的新特性

    什么是ecmascrpit

    ECMA (European Computer Manufacturers Association)中文名称为欧洲计算机制造商协会,这组织的目标是评估、开发和认可电信和计算机标准。1994年后该 组织改名为Ecma国际。ecmascrpit是由Ecma国际通过ECMA-262标准化的脚本程序设计语言。

    一,let关键字的特点

    1.不能重复声明变量

    1. <script>
    2. let name = 'shanyu';
    3. let name = 'AIC';
    4. script>

     2.块级作用域

    只能在块内使用,否则会报错

    1. <script>
    2. // 2.块级作用域,只在块内可使用(如:if,for,while,else)
    3. {
    4. let name = '陆小果';
    5. }
    6. console.log(name);
    7. script>

    3.不存在变量提升

    1. <script>
    2. // 3.不存在变量提升(也就是不允许先使用后声明)
    3. console.log(start);
    4. let start = '武器大师';
    5. script>

     4.不影响作用域链

     二,let的使用

    1. <body>
    2. <div class="container">
    3. <h2 class="page-header">点击切换颜色h2>
    4. <div class="item">div>
    5. <div class="item">div>
    6. <div class="item">div>
    7. div>
    8. <script>
    9. let item = document.getElementsByClassName('item');
    10. // 使用let声明变量,所声明的变量只在该块内使用所以可以用item[i]
    11. for (let i = 0; i < item.length; i++) {
    12. item[i].onclick = function () {
    13. item[i].style.background = 'skyblue';
    14. }
    15. }
    16. script>
    17. body>

    三,const 声明常量以及特点

    1. <body>
    2. <script>
    3. // 声明常量
    4. // 1.必须要赋初始值
    5. const NAME = '山鱼';
    6. // 2.一般常量使用大写(当然小写也不会报错,不成文规定)
    7. // 3.常量的值不能修改
    8. NAME = 'JHXL';
    9. // 4.块级作用域
    10. {
    11. const START = 'BALEITE';
    12. }
    13. console.log(START);
    14. // 5.对于数组和对象的元素修改,不算对常量值的修改,不会进行报错
    15. const PLAY = ['SYZ', 'PPD', 'NANDAO', 'UZI'];
    16. PLAY.push('ZHIXUN');
    17. script>

    四,const的变量解构赋值

    1.数组的结构

    1. <script>
    2. //1. 数组的结构
    3. const TW = ['赵天王', '钱天王', '孙天王', '李天王'];
    4. let [zhao, qian, sun, li] = TW;
    5. console.log(zhao);
    6. console.log(qian);
    7. console.log(sun);
    8. console.log(li);
    9. script>

     2.对象解构赋值

    1. <script>
    2. const xiaopin = {
    3. name: '赵本山',
    4. age: '100',
    5. skill: function () {
    6. console.log('我是白云,我是黑土');
    7. }
    8. };
    9. let { name, age, skill } = xiaopin;
    10. console.log(name);
    11. console.log(age);
    12. console.log(skill);
    13. skill();
    14. script>

    五,ES6新增字符串声明方式

    1.反引号

     

    2.新特性

     3.变量拼接

    使用${}来拼接

    1. <script>
    2. // 3.变量拼接 使用${}来拼接
    3. let hero = `山鱼`;
    4. let like = `${hero}爱吃猫`;
    5. console.log(like);
    6. script>

    六,对象的简化写法

    ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法

    1. <body>
    2. <script>
    3. // ES6允许只放变量进到对象里
    4. let name = '山鱼';
    5. let like = function () {
    6. console.log('我们一起学前端不放弃!');
    7. }
    8. const start = {
    9. name,
    10. like,
    11. skill() {// 可以省略冒号和function
    12. console.log('我会ES6');
    13. }
    14. }
    15. console.log(start);
    16. script>
    17. body>

     七,箭头函数

    1.箭头函数this是静态的,this始终指向函数声明时所在作用域下的值

    1. <script>
    2. // let fn = (a, b) => {
    3. // return a + b
    4. // }
    5. // 调用函数
    6. // let result = fn(3, 3);
    7. // console.log(result);
    8. // 特性
    9. // 1.this是静态的,this始终指向函数声明时所在作用域下的值
    10. function gName1() {
    11. console.log(this.name);
    12. }
    13. let gName2 = () => {
    14. console.log(this.name);
    15. }
    16. window.name = '山鱼';
    17. const like = {
    18. name: 'SHANYU'
    19. }
    20. // 直接调用
    21. gName1(); //返回值为’山鱼‘
    22. gName2(); //返回值为’山鱼‘
    23. // 用call调用,call可以改变函数内部值
    24. gName1.call(like);// 返回值为'SHANYU'
    25. gName2.call(like)//返回值为’山鱼‘
    26. script>

     2.不能作为构造函数作为实例化对象

    1. <script>
    2. // 2.不能作为构造函数作为实例化对象
    3. let Person = (name, age) => {
    4. this.name = name;
    5. this.age = age;
    6. }
    7. let it = new Person('旺财', 2);
    8. console.log(me);
    9. script>

     3.不能使用arguments

    1. <script>
    2. // 3.不能使用arguments变量(arguments可以用来保存实参)
    3. let fn = () => {
    4. console.log(arguments);
    5. }
    6. fn(1, 2, 3);
    7. script>

     4.箭头函数的简写

    1. <script>
    2. // 1,当形参有且只有一个的时候可以省略小括号
    3. let jia = a => {
    4. return a + a;
    5. }
    6. console.log(jia(9));
    7. // 2,当代码体只有一条语句的时候可以省略大括号
    8. let pow = n => n * n;
    9. console.log(pow(3));// 语句的执行结果就是返回值
    10. script>

    写在最后 

    我是Aic山鱼,感谢您的支持
    ​原 创 不 易 ✨还希望支持一下
    点赞👍:您的赞赏是我前进的动力!
    收藏⭐:您的支持我是创作的源泉!
    评论✍:您的建议是我改进的良药!
    山鱼🦈社区:山鱼社区💌💌

  • 相关阅读:
    硬件设计——关于Type-C 口的讲解和设计
    [每周一更]-(第62期):SRE 是什么?
    pandas DataFrame中修改列名和行index
    【1++的C++进阶】之异常
    75基于matlab的模拟退火算法优化TSP(SA-TSP),最优路径动态寻优,输出最优路径值、路径曲线、迭代曲线。
    响应式UI组件DevExtreme 10月新版——v22.1.6全新发布
    轻量封装WebGPU渲染系统示例<20>- 美化一下元胞自动机之生命游戏(源码)
    重生奇迹MU游戏上格斗家挂机小技巧
    CAP定理
    第四十九章 开发自定义标签 - 在action之外使用<csr>标签
  • 原文地址:https://blog.csdn.net/zhaochen1127/article/details/127114232