原生javascript那些事

ES11-ECMAScript2020-史上最全教学

2020-09-01  本文已影响0人  公羊无衣

ECMAScript版本介绍

ECMAScript 是什么

ECMAScript 发展史

版本迭代的那些事

其实版本的迭代,无外乎让自己变得更优秀,一个语言如果想要变得更优秀,那么其实有两条路可以走。 一条路是变得尽可能强大,尽可能可靠像是 c ++ 和 java 。 另外一个是尽可能降低学习成本, 让你几乎无所不能 的同时可以肆无忌惮的发挥自己的想象,做的最好的当然就是JavaScript。

ECMAScript版本的更新无外乎围绕这以下几方面展开

解决低性能封装
降低开发人员入门门槛
修正语言在设计之初没有考虑的问题
干掉了JS之中某些非常恶心的写法
提供了以前不支持的新东西

来自ECMAScript的深情告白 : 其实所有语言版本的更新都是为了让我们更快速,更有效率的完成我们的开发工作,JavaScript这个语言像是穷苦出身的孩子,天赋一般,成绩一般,但是在自己不屑的努力下,终于在这个时代占据了属于自己的重要一席,因为JavaScript的每一次改变都是为了更好的自己和更方便使用它的你。

ES2020版本的新特性

提供了新的API :

新的语法规则,修正了之前的不足

运算符类 :
    // 我们声明一个对象
    var obj = { a : 10 }
    // 如果使用正常的取出运算符 , 在取出为undefined或者null的时候,JavaScript会给我们报出一个类型错误
    
    // 例如 : 
    
    obj.c.a 
    // 这个连续运算就会报出类型错误 : TypeError : Cannot read property 'a' of undefined 
    // 因为 obj.c 运算那结果为 undefined 
    // undefined.a 就出现了配合undefined的取出运算。

    var obj = { a : 10 }
    obj.c?.a 
    // 这个运算第一步obj.c 还是 undefined 
    //所以第二步的运算是 undefined?.a
    
    // 这个运算符,在进行取出的时候,会判定前面的值是否为 undefined 或者 null 如果是,那么则返回undefine ,不会报错。
    //我们在使用对象的时候可以规避开报错。
    // 如果我们想要给函数的参数设置默认值,那么我们就可以使用这样的方式。
    function foo( option ){
        option = option || "hello world"
    }
    // 这个运算的涵义很简单,如果option 传入的参数经过转换为true,那么则直接返回option , 不会继续运算。
    // 如果传入的参数转换为false,那么我们就把option设置为默认值"hello world"
    function foo( option ){
        option = option ?? "hello worold"
    }
class类 :
    class Foo{
        init(){
            // 触发功能;
            
        }
    }    
    class Foo{
        static init(){
            // 触发调用当前类
        }
    }
    class Foo{
        #hello="hello world";
        init(){
            console.log(this.#hello) // hello world
        }
    }
    let foo = new Foo();
    foo.init();
    console.log(foo.#hello)// 报错 ;
语法规则类
    (async ()=>{
        await res = fetch("xxx");
    })()
    await res = fetch("xxx");
    import (xxxx).then(function(res){
            console.log(res);
    })
    let foo = ( arg = throw new TypeError("参数类型错误"))=>{
        
    }
   try {
      return JSON.parse(await readFile(optionalConfigFilePath))
    } catch {
      return {}
    }
上一篇 下一篇

猜你喜欢

热点阅读