尚硅谷前端ES6-ES11

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

1.let变量声明以及变量声明特性

<body>
    <script>
        //let的声明
        let a , b=10;
        //特性1:变量不能重复声明,避免命名污染
        // let star = "罗翔"
        // let star = "张三" //报错
        //特性2:块级作用域
        // if else while for
        // {
        //     let girl = "周"
        // }
        // console.log(girl);//报错
        //特性3:不存在变量提升
        // console.log(song) //报错
        // let song = "恋爱达人"
        //特性4:不影响作用域链
        {
            let school = '尚硅谷'
            function fun(){
                console.log(school); //尚硅谷
            }
            fun()
        }
    </script>
</body>

2.const声明常量以及特点

<body>
    <script>
        //声明常量
        const SCHOOL = "尚硅谷"
        // 特性1:一定要赋初始值
        // const A; //报错
        // 特性2:一般常量使用大写(潜规则)
        // const A = 100
        // 特性3:常量值不能修改
        // const SCHOOL = "ATGUIGU"
        // 特性4:块级作用域
        // {
        //     const PLAYER ='UZI'
        // }
        // 特性5:对于数组的元素修改,不算对常量修改,不会报错
        const TEAM = ['uzi','lol']
    </script>
</body>

3.变量解构赋值

<body>
    <script>
        // 数组的结构
        const num = [0, 1]
        let [a, b] = num
        console.log(b);//1
        // 对象解构
        const user = {name:"张三",age:19}
        let {name,age} = user
        console.log(name);
    </script>
</body>

4.模板字符串

<body>
    <script>
        // ``
        let str = `我是
        张三${6666}`;
        console.log(str);
    </script>
</body>

5.对象简化写法

<body>
    <script>
        let name = 'zs'
        let obj = {
            name,
            imporve(){
                console.log(123);
            }
        }
    </script>
</body>

6.箭头函数

<body>
    <script>
        // 声明函数
        var fn = ()=>{
            console.log(123);
        }
        fn()
        // 特性1:this是静态的,指向作用域,无论使用call什么都不能改变this的指向
        // 特性2:不能作为构造函数实例化
        // 特性3:不能使用argument变量
        // 特性3:箭头函数的简写,省略小括号,当形参只有一个的时候。省略花括号,当代码只有一条,结果就是返回值
    </script>
</body>

7.函数参数的默认值设置

<body>
    <script>
        // 1.形参初始化 具有默认值的参数,一般位置要靠后(潜规则)
        function add(a,b=10){}
        // 2.与解构赋值结合
        function reduce({a,b=10}){}
    </script>
</body>

8.rest参数

<body>
    <script>
        // 1.rest参数,返回一个真正的数组argument返回一个伪数组
        // 2.一般写在最后面
        function add(a,...args){}
    </script>
</body>

9.扩展运算符

<body>
    <script>
        // 扩展运算符 【...】将数组转换为一个由,分割的有序数列,用于数组的合并
        const arr = [1,2,3]
        console.log(...arr);
    </script>
</body>

10.Symbol

<body>
    <script>
       //声明一个独一无二的数据,不能进行运算
       let s = Symbol("尚硅谷")
       //7个数据类型 Number,Undefined,String,null,boolean,Symbol,object
    </script>
</body>

11.迭代器和生成器

interptor。。。。。for of遍历

12.Promise

Promise 是 ES6 引入的异步编程的新解决方案。语法上Promise 是一个构造函数,用来封装异步操作并可以获取其成功或失败的结果。

        Promise 构造函数:Promise(excuor){}

        Promise.prototype.then 方法

        Promise.prototype.catch 方法

<body>
    <script>
        const p = new Promise(function (res, rej) {
            setTimeout(() => {
                res("成功")
            }, 3000)
        })
        p.then((res) => {
            console.log(res);
        }, (err) => {
            console.log(err);
        }).catch((err) => {
            console.log(err);
        })
    </script>
</body>

13.set

ES6 提供了新的数据结构 Set (集合)。他类似于数组,但成员的值都是唯一的,集合实现了interator接口,所以可以使用【扩展运算符】和【for...of...】进行遍历,集合的属性和方法;

size:返回集合的元素个数        add:添加一个新的元素,返回当前集合        delete:删除元素,返回boolean值        has:检测集合中是否包含某个元素

var set = new Set()

 14.Map

键值对形式:

size:返回Map的元素个数        set,增加一个元素,返回当前map        get:返回键名对象的键值        has:检测是否包含某个元素      clear:清空

let map = new Map()

15.class类

<body>
    <script>
        class Phone {
            static size = "18inch"
            constructor(name, price) {
                this.name = name;
                this.price = price;
            }
            call(){
                console.log("我可以打电话");
            }
        }
        class SmartPhone extends Phone{
            constructor(name, price,color) {
                super(name,price)
                this.color=color
            }

            call(){
                console.log("华为手机就是牛");
            }

            get color(){
                console.log("获取color");
                return "iloveyou" //获取color的值
            }

            set color(value){
                console.log(value); //暗黑
                return "iloveyou"
            }
        }

        let phone = new Phone("小米",19999.0)
        console.log(phone);
        console.log(Phone.size);
        let smartPhone = new SmartPhone("华为",29013,"虹色")
        smartPhone.call()
        console.log(smartPhone.color);
        smartPhone.color = "暗黑"
    </script>
</body>

16.数值扩展

<body>
    <script>
        // 0.Number.EPSILON 是 Javascript 表示最小精度
        function equal(a,b){
            if(Math.abs(a-b) < Number.EPSILON){
                return true
            }else{
                return false
            }
        }
        console.log(equal(0.3,0.2+0.1));

        // 1.二进制和八进制
        let a = 0x09
        console.log(a); //9

        //2.Number.isFinite 检测一个数值是否为有限数
        console.log(Number.isFinite(10/2)); //true

        //3.Number.isNAN 检测一个数值是否为 NaN
        console.log(Number.isNaN(123)); //false

        //4.Number.parseInt  Number.parseFloa字符串转整数
        console.log(Number.parseFloat("123"));

        //5.Number.isIneger 判断一个数是否为整数
        console.log(Number.isInteger(1.1)); //false

        //6.Math.trunc 将数字的小数部分某掉
        console.log(Math.trunc(3.6));

        //7.Math.sign 判断一个数为正数 1 负数 -1 零 0
        console.log(Math.sign(11));
    </script>
</body>

17.对象扩展

<body>
    <script>
        //Object.is判断两个值是否相等
        console.log(Object.is(123, 123));
        //Object.assign 对象的合并
        console.log(Object.assign({ name: 123 }, { age: 19 }));
        //Object.setPrototypeOf
        const obj = { name: "zs" }
        console.log(Object.setPrototypeOf(obj,{city:"北京"}));
    </script>
</body>

18.模块化

分别暴露:

统一暴露:

默认暴漏:

 babel将ES6转换为ES5代码

19.ES7新特性

判断数组是否包含某个值:const arr = [1,2,3]   console.log(arr.includes(1))

指数:console.log(2 ** 10)

20.async函数和await表达式

async 函数的返回值为promise对象。promise对象的结果由async函数执行的返回值决定

await必须写在async函数中。右侧为promise对象。返回的是promise成功的值,失败使用try...catch捕获

21.对象方法扩展

<body>
    <script>
        var obj = {name:"zs",age:18}
        //获取对象所有的键
        console.log(Object.keys(obj));
        //获取对象所有的值
        console.log(Object.values(obj));
        // 创建Map
        console.log(new Map(Object.entries(obj)));
    </script>
</body>

22.对象方法扩展

<body>
    <script>
       var obj = {name:"张三"}
       var age = {age:18}
       console.log({...obj,...age});
    </script>
</body>

23.Object.fromEntries()将二维数组转化为对象

<body>
    <script>
      const result = Object.fromEntries([['name',"尚硅谷"],["xueke","java,前端"]])
      console.log(result);
      const map = new Map()
      console.log(Object.fromEntries(map));
    </script>
</body>

24.字符串方法扩展

trimStart-trimEnd去除左边和右边的空格

25.数组扁平化flat和mapFlat

<body>
    <script>
      //flat 平
      const arr = [1,2,3,[4,5,[7,8]]]
      //参数为深度 是一个数字 默认为1
      console.log(arr.flat(3));

    //   flatMap
    const arr1 = [1,2,3]
    const result = arr.flatMap(item=>[item]);
    console.log(result);
    </script>
</body>

26.Symbol的描述

<body>
    <script>
    //   创建 Symbol
    let s = Symbol('尚硅谷')
    console.log(s.description);
    </script>
</body>

27.私有属性

28.动态Import 

29.最大值

BigInt()

30.全局指向globalThis

<body>
    <script>
    console.log(globalThis);
    </script>
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值