【ES6】 — ECMAScript6快速入门01

本文详细介绍了ES6作为JavaScript的最新版本所引入的新特性,包括let和const变量声明、增强的字符串操作、解构赋值等功能,并探讨了这些新特性如何提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ES6和JS的关系
  • ES6:
    • ECMAScript6
  • js:
    • 组成部分:ECMA DOM BOM

什么是ECMA?

ECMA是标准,JS是实现,换句话来说也有可能有其他xxxScript来实现ECMA


ECMAScript:简写ECMA或者ES
  • 目前版本:
    • 低级浏览器:主要支持ES3.1
    • 高级浏览器:正在从ES5过渡到ES6
  • 历史:
    • 1996 ES1.0 js稳定 Netscape将js提交给ECMA组织,ES正式出现
    • 1998 ES2.0 ES2.0正式发布
    • 1999 ES3.0 ES3被浏览器广泛支持
    • 2007 ES4.0 ES4过于激进,被废除了
    • 2008 ES3.1 ES4.0退化为严重缩水版的3.1 Harmony(和谐)
    • 2009 ES5.0 ES5.0正式发布,同时公布了JavaScript.next也就是后来6.0
    • 2011 ES5.1 ES5.1成为ISO国际标准
    • 2013.03 ES6.0 ES6.0定制草案
    • 2013.12 ES6.0 ES6.0草案发布
    • 2015.06 ES6.0 ES6.0预计发布正式版,同时JavaScript.next指向ES7.0

ES6兼容性
  • 目前为止ES5,ES6支持情况,凑合
  • 09年,NodeJS用的就是chrome内核,在node中可以使用ES5,ES6很多新特性
  • ES5和ES6已经逐渐沦为后台语言

在浏览器里面如何使用?
  • 需要用到编译工具
  • babel
  • traceur —— 由Google出的编译器,把ES6语法编译为ES5
  • bootstrap —— 引导程序,跟css里面认识的bootstrap不同

在网页上使用:
  • 用法一:
    • <script src="traceur.js"></script>
    • <script src="bootstrap"></script>
    • <script type="module"></script>
  • 用法二:
    • 直接在线编译 —— 主要用于测试
    • http://bebaljs.io/repl
    • http://google.github.io/traceur-compiler/demo/repl.html
  • 用法三:
    • 直接在node里面使用
    • a)直接用,需要添加’user strict’
    • b)node –harmony 1.js

定义let变量
    var a = 12;     //es5
    let a = 12;     //es6
  • 代码块: {}包起来的代码
  • 特点:智能在代码块里面使用
  • var只有函数作用域

a)let具备块级作用域
b)不允许重复声明

    let a = 12;
    let a = 5;      //错的

总结:其实let才接近其他语言的变量

用处:

  • ES5封闭空间:
(function(){
    var a = 12;
})();
  • ES6现在:
{
    let a = 12;
}
i问题:
//使用ES5
window.onload = function(){
    var aBtn = document.getElementsByTagName('input');
    for(var i=0;i<aBtn.length;i++) {
        (function(i){
            aBtn[i].onclick = function(){
                alert(i);
            }
        })(i);
    }
};
//使用ES6
window.onload = function(){
    var aBtn = document.getElementsByTagName('input');
    for(let i=0;i<aBtn.length;i++) {
        aBtn[i].onclick = function(){
            alert(i);
        }
    }
};

定义const变量
  • 特性:一旦赋值,以后再也修改不了了
const a = 12;
a = 15;         //报错
  • 注意:const必须给初始值,不能重复声明;因为以后再也没法赋值了,所以声明的时候一定得有值。
  • 用途:为了防止意外修改变量
    • 比如引入库名,组件名

字符串连接
  • 之前
    • var a = 'abc' + 变量 + 'ef';
  • 现在
    • var a = `abc${变量}\ef`;

解构赋值:
  • 模式匹配:左侧的样子,需要和右侧的一样
var [a, b, c] = [3, 4, 5];
console.info(a, b, c);
  • json解构赋值和顺序无关
var {a,b,c} = {b:5,a:12,c:101};
console.info(a, b, c);
  • 深层解构赋值
//案例一
var [d,[e,f],g] = [12,[1,2],5];
console.info(d,e,f,g);
//案例二
var [{a,e},[b,c],d] = [{e:'eeee',a:'aaaaaa'},[1,2],5];
console.info(a,b,c,d,e);
  • 对方法返回值进行解构
function getPos() {
    return {left:100,stop:1000};
}
var {left,stop} = getPos();
  • 解构赋值给定默认值
var {time=12,id=0} = {};
console.info(time,id);
  • 用途
//用途:案例一
var json = {
    "statuses": [
        {
            "created_at": "Tue May 31 17:46:55 +0800 2011",
            "id": 11488058246
        }
    ],
    "ad": [
        {
            "id": 3366614911586452,
            "mark": "AB21312XDFJJK"
        }
    ]
};
var {statuses,ad} = json;
console.info(statuses);
//用途:案例二
var arr = [{title:'abc',href:'kkkk',img:'img1'}];
var [{title,href,img}] = arr;
console.info(title, href, img);
//用途:案例三
function move(obj,json,{time=300,dom}={}){
    console.info(obj,json,time,dom);    //测试 {a: 123} 200 body
}
move('测试',{a:123},{time:200,dom:'body'})
1. 用户与身体信息管理模块 用户信息管理: 注册登录:支持手机号 / 邮箱注册,密码加密存储,提供第三方快捷登录(模拟) 个人资料:记录基本信息(姓名、年龄、性别、身高、体重、职业) 健康目标:用户设置目标(如 “减重 5kg”“增肌”“维持健康”)及期望周期 身体状态跟踪: 体重记录:定期录入体重数据,生成体重变化曲线(折线图) 身体指标:记录 BMI(自动计算)、体脂率(可选)、基础代谢率(根据身高体重估算) 健康状况:用户可填写特殊情况(如糖尿病、过敏食物、素食偏好),系统据此调整推荐 2. 膳食记录与食物数据库模块 食物数据库: 基础信息:包含常见食物(如米饭、鸡蛋、牛肉)的名称、类别(主食 / 肉类 / 蔬菜等)、每份重量 营养成分:记录每 100g 食物的热量(kcal)、蛋白质、脂肪、碳水化合物、维生素、矿物质含量 数据库维护:管理员可添加新食物、更新营养数据,支持按名称 / 类别检索 膳食记录功能: 快速记录:用户选择食物、输入食用量(克 / 份),系统自动计算摄入的营养成分 餐次分类:按早餐 / 午餐 / 晚餐 / 加餐分类记录,支持上传餐食照片(可选) 批量操作:提供常见套餐模板(如 “三明治 + 牛奶”),一键添加到记录 历史记录:按日期查看过往膳食记录,支持编辑 / 删除错误记录 3. 营养分析模块 每日营养摄入分析: 核心指标计算:统计当日摄入的总热量、蛋白质 / 脂肪 / 碳水化合物占比(按每日推荐量对比) 微量营养素分析:检查维生素(如维生素 C、钙、铁)的摄入是否达标 平衡评估:生成 “营养平衡度” 评分(0-100 分),指出摄入过剩或不足的营养素 趋势分析: 周 / 月营养趋势:用折线图展示近 7 天 / 30 天的热量、三大营养素摄入变化 对比分析:将实际摄入与推荐量对比(如 “蛋白质摄入仅达到推荐量的 70%”) 目标达成率:针对健
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值