es6要用严格模式

实验let的块级作用域,在sublime的Tools——Babel——Babel Transform检测未出现错误,在html中也未出现错误,唯在控制台中一直报错。

//js名为es6.js ---* es6.js *---改前:
let a = [];
for (let i = 0; i < 10; i++) {
    a[i] = function() {
        console.log(i);
    };
}
a[6]();

//html中

<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="es6.js">
</script>
</head>

原因:ES6代码开头时要声明为"use strict"。

//改后
"use strict";
let a = [];
for (let i = 0; i < 10; i++) {
    a[i] = function() {
        console.log(i);
    };
}
a[6]();

等价于ES5中的闭包

时间: 2024-11-17 19:18:07

es6要用严格模式的相关文章

ES6中的代理模式-----Proxy

什么是代理模式 代理模式(英语:Proxy Pattern)是程序设计中的一种设计模式. 所谓的代理者是指一个类别可以作为其它东西的接口.代理者可以作任何东西的接口:网络连接.内存中的大对象.文件或其它昂贵或无法复制的资源. 著名的代理模式例子为引用计数(英语:reference counting)指针对象. 当一个复杂对象的多份副本须存在时,代理模式可以结合享元模式以减少内存用量.典型作法是创建一个复杂对象及多个代理者,每个代理者会引用到原本的复杂对象.而作用在代理者的运算会转送到原本对象.一

基于ES6封装发布订阅模式

代码如下: 封装自定义:subscribe.js let _subscribe = (function () { // Sub 发布订阅类 class Sub { constructor () { // 创建一个事件池 用来存储后期需要执行的方法 this.$pond = []; } // 向事件池中追加方法(需要做去重处理) add (func) { let flag = this.$pond.some(item => { return item === func; }); !flag ? t

es6学习 -- 解构赋值

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 以前,为变量赋值,只能直接指定值. let a = 1; let b = 2; let c = 3; ES6 允许写成下面这样. let [a, b, c] = [1, 2, 3]; 上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值. 本质上,这种写法属于"模式匹配",只要等号两边的模式相同,左边的变量就会被赋予对应的值.下面是一些使用嵌套数组进行解构的例子. 我认为

30分钟掌握ES6核心内容

ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. 虽然目前并不是所有浏览器都能兼容ES6全部特性,但越来越多的程序员在实际项目当中已经开始使用ES6了.所以就算你现在不打算使用ES6,但为了看懂别人的你也该懂点ES6的语法了... 在我们正式讲解ES6语法之前,我们得先了解下Babel. Babel Babel是一个广泛使用的ES6转码器,可以将

ES6入门概览一

一.let const 1.let命令:声明变量仅在块级作用域有效:let实际上为js新增了块级作用域 好处: -不存在变量提升: -内部声明的变量 函数 不会影响外部 -不可重复声明变量 2.const 声明常亮  声明时赋值 声明变量: 1.var 2.function (ES5 全局对象属性) 3.let 4.const 5. import 6.class 二 变量的解构赋值 解构Destructuring: Es6允许按照一定模式 从数组.对象中提取值,对变量进行赋值 三. for...

ES6学习入门

ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. 虽然目前并不是所有浏览器都能兼容ES6全部特性,但越来越多的程序员在实际项目当中已经开始使用ES6了.所以就算你现在不打算使用ES6,但为了看懂别人的你也该懂点ES6的语法了... 暂时,我们想赶快上手项目,则只需要了解最常用的ES6特性 let, const, class, extends, s

ES6函数扩展

前面的话 函数是所有编程语言的重要组成部分,在ES6出现前,JS的函数语法一直没有太大的变化,从而遗留了很多问题和的做法,导致实现一些基本的功能经常要编写很多代码.ES6大力度地更新了函数特性,在ES5的基础上进行了许多改进,使用JS编程可以更少出错,同时也更加灵活.本文将详细介绍ES6函数扩展 形参默认值 Javascript函数有一个特别的地方,无论在函数定义中声明了多少形参,都可以传入任意数量的参数,也可以在定义函数时添加针对参数数量的处理逻辑,当已定义的形参无对应的传入参数时为其指定一个

ES6笔记一

1.启动命令中的--harmony选项可以打开所有已经部署的ES6功能 $ node --harmony 2.使用下面的命令,可以查看所有与ES6有关的单个选项.     $ node --v8-options | grep harmony 3.ES6转化为ES5有下面几种方式: .直接插入网页(网页头部加载Traceur库文件) .在线转换 https://google.github.io/traceur-compiler/demo/repl.html# http://babeljs.io/r

30分钟掌握ES6/ES2015核心内容

30分钟掌握ES6/ES2015核心内容 ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. 虽然目前并不是所有浏览器都能兼容ES6全部特性,但越来越多的程序员在实际项目当中已经开始使用ES6了.所以就算你现在不打算使用ES6,但为了看懂别人的你也该懂点ES6的语法了... 在我们正式讲解ES6语法之前,我们得先了解下Babel.Babel Bab