• 【前端进阶——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山鱼,感谢您的支持
    ​原 创 不 易 ✨还希望支持一下
    点赞👍:您的赞赏是我前进的动力!
    收藏⭐:您的支持我是创作的源泉!
    评论✍:您的建议是我改进的良药!
    山鱼🦈社区:山鱼社区💌💌

  • 相关阅读:
    受众分析与卸载分析全面升级,HMS Core分析服务6.6.0版本上新
    FastAPI学习-18.Response 返回 XML 格式
    Rabbitmq入门教程
    Coremail&奇安信2021邮箱安全报告:正常邮件数量首超普通垃圾邮件,防护初见成效
    redis 无法远程连接问题。
    Android 12 Bluetooth Open[1]
    亿发软件:现代化机械制造行业建设企业一体化管理系统的必要性
    内网场景 Dubbo 微服务接入观测云
    MySQL-2(14000字详解)
    vue2和vue3 canvas插件,绘制海报,生成图片等等。
  • 原文地址:https://blog.csdn.net/zhaochen1127/article/details/127114232