ES6 学习笔记

本文详细介绍了从ES6到ESNext的JavaScript语言发展过程,包括每年的标准更新、提案流程及不同版本的重要特性,如let和const变量声明、解构赋值、字符串模板、函数改进等。

ES6   ->  ECMA  标准

js

ES7  ES8.....

ES5.x

ECMA-262       ->   ES1.0
--------------------------------------------
ES2015

ES6  ->   2015年6月    ES6.0

每年6月份,发布一个版本

    2016年6月    ES6.1    ES7        ES2016
    2017年6月    ES6.2(async await)    ES8        ES2017

    ESnext
---------------------------------------------
ESnext    '下一代 js'语言
----------------------------------------------
任何人都可以向 标准委员会 (TC39), 要求更改语言标准

提案变成标准,经历5个阶段
    Stage 0    展示阶段
    Stage 1    征求意见阶段
    Stage 2    草案阶段
    Stage 3    候选阶段
    Stage 4    定案阶段(标准)

babel
----------------------------------------------
https://github.com/tc39/ecma262

----------------------------------------------

react, vue, angularJs, angular

chrome,    对新的语法支持,速度还挺猛
----------------------------------------------
ES6环境:
    webpack3.x

    Traceur
----------------------------------------------
关于定义(声明)变量:
    之前:     var a=12;
        let a=12

    作用域:
        全局
        函数作用域

    let        相当于之前的 var
    const        常量, 定义好了不能改变

    let注意:
        1. 没有预解析,不存在变量提升
            在代码块内,只要let定义变量,在之前使用,都是报错
            先定义完,在使用
        2.  同一个作用域里, 不能重复定义变量
        3.  for循环,for循环里面是父级作用域,里面又一个

    块级作用域:
        {
            //块级作用域
        }
        
        {{{{let a = 12}}}}

        if(){xx}
        for(){}
        while(){}


    const: 特性和let一样
        const定义变量不能修改

        const定义完变量,必须有值,不能后赋值,不能修改

        Object.freeze(对象)

        const config={
            host:
            username:
            password:
            version:
        }

    
    {
        //TODO
    }

    IIFE
    (function(){
        //TODO
    })()

    建议:
        以后 就用 let  不要在使用var
        
        const http = require('http');
======================================
解构赋值:
    *  非常有用,特别在做数据交互  ajax

    let [a,b,c] =[12,5, 6];

    注意: 左右两边,结构格式要保持一致

    json:
        let {name,age, job} = {
            name:'Strive',
            age:18,
            job:'码畜'
        };

        let {name:n,age:g, job:a} = json;

    解构时候可以给默认值:
        let [a,b, c="默认值"] = ['aaa','bbb'];

    let a = 12;
    let b = 5;

        

    import {a,b,c} from './mod'
======================================
字符串模板:
    ``  字符串模板:
        优点: 可以随意换行
        `  ${变量名字}`
    字符串连接,要死人的。

    let name ='Strive';
            let age = 18;
            let str = `这个人叫${name}, 年龄是 ${age}岁`;

    关于字符串一些东西:
        字符串查找:
            str.indexOf(要找的东西)   返回索引(位置) ,没找到返回-1
            str.includes(要找的东西)   返回值  true/false

            判断浏览器:  includes

        http://www.xxx.xx

        字符串是否以谁开头:
            str.startsWith(检测东西)

            检测地址
        字符串是否以谁结尾:
            str.endsWith(检测东西)

            .png

        重复字符串:
            str.repeat(次数);

    填充字符串:
        str.padStart(整个字符串长度, 填充东西)   往前填充
        str.padEnd(整个字符串长度, 填充东西)    往后填充

        str.padStart(str.length+padStr.length, padStr)
============================================
函数变化:
    1. 函数默认参数
        function show({x=0,y=0}={}){
            console.log(x,y);
        }
        show()
    2. 函数参数默认已经定义了,不能再使用let,const声明
        function show(a=18){
            let a = 101;  //错误
            console.log(a);
        }
        show()

扩展运算符、Rest运算符:
    ...

    展开数组

    ... :
        [1,2,3,4]  -> ... [1,2,3,4]  ->  1,2,3,4,5
    ...:
        1,2,3,4,5  -> ...1,2,3,4,5  ->  [1,2,3,4,5]

    剩余参数: 必须放到最后

箭头函数:
    =>

    let show = () => 1;


    () => return东西

    () =>{
        语句
        return
    }

    注意:
        1. this问题, 定义函数所在的对象,不在是运行时所在的对象
        2. 箭头函数里面没有arguments, 用  ‘...’
        3. 箭头函数不能当构造函数

    
    
    
    

        
        
            

    

    

        
        

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
本系统采用微信小程序作为前端交互界面,结合Spring Boot与Vue.js框架实现后端服务及管理后台的构建,形成一套完整的电子商务解决方案。该系统架构支持单一商户独立运营,亦兼容多商户入驻的平台模式,具备高度的灵活性与扩展性。 在技术实现上,后端以Java语言为核心,依托Spring Boot框架提供稳定的业务逻辑处理与数据接口服务;管理后台采用Vue.js进行开发,实现了直观高效的操作界面;前端微信小程序则为用户提供了便捷的移动端购物体验。整套系统各模块间紧密协作,功能链路完整闭环,已通过严格测试与优化,符合商业应用的标准要求。 系统设计注重业务场景的全面覆盖,不仅包含商品展示、交易流程、订单处理等核心电商功能,还集成了会员管理、营销工具、数据统计等辅助模块,能够满足不同规模商户的日常运营需求。其多店铺支持机制允许平台方对入驻商户进行统一管理,同时保障各店铺在品牌展示、商品销售及客户服务方面的独立运作空间。 该解决方案强调代码结构的规范性与可维护性,遵循企业级开发标准,确保了系统的长期稳定运行与后续功能迭代的可行性。整体而言,这是一套技术选型成熟、架构清晰、功能完备且可直接投入商用的电商平台系统。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值