前端打怪之旅=>Es6入门(介绍及变量)
  qexFATcVS7g0 2023年11月02日 72 0

1.ECMASript相关介绍(基础理解)

1.1什么是ES

前端打怪之旅=>Es6入门(介绍及变量)_赋值

ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,所以它可以理解为是javascript的一个标准,但实际上后两者是ECMA-262标准的实现和扩展。

1.2什么是ECMAScript

ECMAScript是由Ecma国际通过ECMA-262标准化的脚本程序设计语言。

1.3什么是ECMA-262

Ecma国际制定了许多标准,而ECMA-262只是其中的一个,所有标准列表查看 http://www.ecma-international.org/publications/standards/Standard.htm

1.4ECMA-262历史

ECMA-262(ECMAScript)历史版本查看网址

http://www.ecma-international.org/publications/standards/Ecma-262-arch.htm

第1版

1997年

制定了语言的基本基本语法

第2版

1998年

较小改动

第3版

1999年

引入正则、异常处理、格式化输出等。IE开始支持

第4版

2007年

过于激进,未发布

第5版

2009年

引入严格模式、SON,扩展对象、数组、原型、字符串、日期方法

第6版

2015年

模块化、面向对象语法、Promise、箭头函数、Iet、const、数组解构赋值等等

第7版

2016年

幂运算符、数组扩展、Async/await关键字

第8版

2017年

Async/await、字符串扩展

第9版

2018年

对象解构赋值、正则扩展

第10版

2019年

扩展对象、数组方法

ES.next

动态指向下一个版本


1.5谁在维护ECMA-262

TC39(Technical Committee39)是推进ECMAScript发展的委员会。其会员都是公司(其中主要是浏览器厂商,有苹果、谷歌、微软、因特尔等)。TC39定期召开会议,会议由会员公司的代表与特邀专家出席

1.6为啥学习这个捏

  • ES6的版本变动内容最多,具有里程碑意义
  • ES6加入许多新的语法特性,编程实现更简单、高效
  • ES6是前端发展趋势,就业必备技能

1.7ES6兼容性

ECMAScript 6 compatibility table (kangax.github.io)可查看兼容性

前端打怪之旅=>Es6入门(介绍及变量)_赋值_02

2.变量

2.1let声明变量

2.1.1声明以及赋值

            //声明变量
            //单个变量声明
            let a;
            //多个变量声明
            let b,c,d;
            //对单个变量赋值
            let e = 100;
            //对多个变量赋值
            let f=999,g='love',h=[];

2.1.2注意

  • 变量不能重复声明
            let sun;
            let sun;

前端打怪之旅=>Es6入门(介绍及变量)_赋值_03

他会报错,说这个变量已经被声明,对新手来说是值得注意的,如果你已经有其他语言的经验的话,那这种报错基本上很容易找到。

需要注意的是如果使用的var来声明变量,使用同一个是可以的。

也就是说let的命名规则要比var规范

  • 作用域
  • 块级
  • let定义
  • var定义
                {
                    let gril = 'none';
                }
                console.log(gril)

前端打怪之旅=>Es6入门(介绍及变量)_赋值_04

报错显示未定义变量,但实际上你定义了,但是因为作用域的问题,导致你的作用范围不在全局生效,只在代码块内生效,全局找不到,当然就报错了。

                {
                    var gril = 'none';
                }
                console.log(gril)

前端打怪之旅=>Es6入门(介绍及变量)_数组_05

换成var就能读取到变量值了,这是为什么呢? 因为var在代码中没有块级作用域,会向全局的window属性添加属性。 if while for等等这些有{}的都不会生效

  • 全局
  • 函数
  • eval
  • 不存在变量提升
  • 使用var
            console.log(name)
            var name = '张三'

前端打怪之旅=>Es6入门(介绍及变量)_赋值_06

 var name; console.log(name) var name = '张三'

  • 使用let
            console.log(name)
            let name = '张三'

前端打怪之旅=>Es6入门(介绍及变量)_ES6_07

  • 不影响作用域链
                {
                let school='浅辄'
                function fn(){
                    console.log(school);
                }
                fn();
            }

前端打怪之旅=>Es6入门(介绍及变量)_数组_08

2.2const声明常量

2.2.1声明以及赋值

        //声明常量
        const SCHOOL = '浅辄';
        console.log(SCHOOL)

前端打怪之旅=>Es6入门(介绍及变量)_数组_09

2.2.2注意

  • 一定要赋初始值
const A;

前端打怪之旅=>Es6入门(介绍及变量)_ES6_10

  • 一般常量使用大写(都很默认的规则啦)
const a = 1;

反正也不报错,不正式

  • 常量值不能修改
            const SCHOOL = '浅辄';
            SCHOOL = 'QZ'

前端打怪之旅=>Es6入门(介绍及变量)_数组_11

  • 块级作用域
            {
                const PLAYER = 'Lee';
                
            }
            console.log(PLAYER)

前端打怪之旅=>Es6入门(介绍及变量)_数组_12

  • 对于数组和对象的元素修改,不算做对常量的修改,不会报错
const TEAM = ['UZI','FAKER','6.6']
            TEAM.push('Mekio')
            console.log(TEAM)

前端打怪之旅=>Es6入门(介绍及变量)_ES6_13

这是为什么,因为常量指向的地址没有发生改变,虽然数组元素发生变化,但是常量所指向地址没有报错。

2.3变量结构赋值

ES6允许按照一定模式从数组和对象中提取值,对变量进行赋值,这被称为解构赋值。

2.3.1数组的结构

const F4 = ['莱昂纳多·小沈阳','约翰尼·宋小宝','克里斯蒂安·刘能','尼古拉斯·赵四']
        let [xiao,liu,zhao,song]=F4;
        console.log(xiao)
        console.log(liu)
        console.log(zhao)
        console.log(song)

前端打怪之旅=>Es6入门(介绍及变量)_赋值_14

2.3.2对象的解构

const zhao = {
                    name: '赵本山',
                    age: '不知道',
                    xiaopin: function() {
                        console.log("卖拐");
                    }
            };
            let {
                name,
                age,
                xiaopin
            } = zhao
            console.log(name);
            console.log(age);
            console.log(xiaopin);
            xiaopin()

前端打怪之旅=>Es6入门(介绍及变量)_赋值_15

这样是为了重复调用的时候少写zhao.xiaopin(),减少代码的冗余。

2.4模板字符串

ES6引入新的声明字符串的方式「''」

2.4.1声明

        let str =  `i am a string!`
        console.log(str,typeof str)

前端打怪之旅=>Es6入门(介绍及变量)_数组_16

2.4.2特性

  • 内容中可以直接出现换行符
        let str='<u1>
                    <1i>周星驰</1i>
                    <1i>周润发</1i>
                </u1>';

前端打怪之旅=>Es6入门(介绍及变量)_ES6_17

使用单引号就不可以出现换行符

        let str=`<u1>
                    <1i>周星驰</1i>
                    <1i>周润发</1i>
                </u1>`;

前端打怪之旅=>Es6入门(介绍及变量)_ES6_18

就不会报错了

  • 变量拼接
            let favorite = '杰森';
            let out = `${favorite}是我喜欢的演员`;
            console.log(out)

前端打怪之旅=>Es6入门(介绍及变量)_ES6_19

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
qexFATcVS7g0