es6基础(1)--声明】的更多相关文章

function test(){ //let只在块作用域有效 for(let i=1;i<3;i++){ console.log(i); } //es6严格模式,变量未声明,不可以用 //console.log(i); //let 里面不可以声明两个相同的变量 let a=1; //let a=2; } test(); function last(){ //const定义常量,并且必须要有赋值 const PI=3.1415926; //常量不可以修改 //PI=8; //但是对象可以修改,这个…
转载自:ES6 基础 一.新的变量声明方式 let/const 与var不同,新的变量声明方式带来了一些不一样的特性,其中最重要的两个特性就是提供了块级作用域与不再具备变量提升. 通过2个简单的例子来说明这两点. { let a = 20; } console.log(a); // a is not defined 而这个简单的例子,会被编译为: { let _a = 20; } console.log(a); // a is not defined // ES5 console.log(a);…
ES6 基础 一.新的变量声明方式 let/const 与var不同,新的变量声明方式带来了一些不一样的特性,其中最重要的两个特性就是提供了块级作用域与不再具备变量提升. 通过2个简单的例子来说明这两点. { let a = 20; } console.log(a);  // a is not defined 而这个简单的例子,会被编译为: { let _a = 20; } console.log(a);  // a is not defined // ES5 console.log(a);  …
es6系列所有文章都是阅读阮一峰老师的<ES6标准入门>(第2版)所做的读书笔记.方便日后查阅相关基础知识. git地址: https://github.com/rainnaZR/es6-study 变量声明方法 es6的变量声明方面包括: let, const, var, function, import, class. let变量声明 不存在变量提升,变量一定要在声明后才能使用,也就是变量声明前,变量都是不可用的. 不允许重复声明. 拥有块级作用域,一个大括号就是一个块级作用域. cons…
创建: 2017/09/16 更新: 2017/09/24 更改标题 [JavaScript 概要]-> [JavaScript 基础] 完成: 2017/09/25 更新: 2017/10/09 补充函数声明也会上卷  更新: 2018/01/22 加红函数也会上卷                          补充内置Obejct等,完善欠缺的内容, 把标题列加粗,字体放大 更新: 2019/02/19 把Object, 函数, Array三小块移除到新博文并删除迁移部分(链接已附在此条…
01-先了解ES6语法 1.声明变量let和const <script type="javascript"> //es5声明变量 var 先声明,后赋值 //var a = 10; //console.log(a); //因变量提升 导致 1.var声明的变量属于 全局作用域; //2.var声明的变量存在覆盖现象; var a; console.log(a); { a = 20; //var a = 30; } console.log(a); //打印结果:i=10 fo…
ES5中只有函数作用域和全局作用域,声明变量使用var,在es6中添加声明变量 let const let 声明块级作用域变量, let 不存在变量提升 var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined.这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用. 为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错. var 声明的变量可以在声明之前使用,是undifind,存在变量提升现象,let 声明的…
ES6)新增加了两个重要的 JavaScript 关键字:let 和 const.以前声明变量时只有一种方式:var,ES6对声明方式进行了扩展,现在可以有三种声明方式了. 1.var:variable的简写,字面意思就是变量. 2.let:let的意思(vt. 允许,让:出租:假设:妨碍:vi. 出租:被承包:n. 障碍:出租屋) 我理解为出租屋.临时的意思.一种临时变量声明方式,既然是临时变量,则该变量的定义.激活以及作用区域也就只在 let 命令所在的代码块内有效. 3.const:常量.…
说到ES6的let变量声明,我估计很多人会想起下面几个主要的特点: 没有变量声明提升 拥有块级作用域 暂时死区 不能重复声明 很多教程和总结基本都说到了这几点(说实话大部分文章都大同小异,摘录的居多),习惯性我还是去看了MDN上的文档,立马发现一个问题: In ECMAScript 2015, let will hoist the variable to the top of the block. However, referencing the variable in the block be…
1. 什么是ECMAScript ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言.这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,所以它可以理解为是javascript的一个标准,但实际上后两者是ECMA-262标准的实现和扩展. ECMAScript 与 JavaScript 一个常见的问题是, EC…
ECMAScript 6 标准入门 一.let和const let命令 let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效:是块级作用域,且let不允许在相同作用域内,重复声明同一个变量. { let a = 12; } console.log(a); //Uncaught ReferenceError: a is not defined { let a = 12; let a = 22; } console.log(a); //Uncaught…
作者 | Jeskson 来源 | 达达前端小酒馆 ES - Class 类和面向对象: 面向对象,即万物皆对象,面向对象是我们做开发一种的方式,开发思维,面向对象的思维中万物皆对象,以人作为例子,它的特性有哪些.比如有姓名,性别,出生年月,身高等,还有人的行为,为吃饭,睡觉.特性和行为组合起来就成为人类,特性和行为都是人都有的,通过这些不同的特性和行为给不同的值,构成不同的人. 使用类进行编程,是可以降低维护成本,类的封装性是非常强的,很多情况下,类和业务是低耦合,使用类可以让代码高度复用,类…
作者 | Jeskson来源 | 达达前端小酒馆 01 首先呢?欢迎大家来学习ES6入门基础let,const的基础知识内容.初始ECMA Script6. ESMAScript与JavaScript的关系: ES是JS的标准(ES是对ECMAScript的缩写)JS是ES的实现 ESMAScript的部分历史: 1998-06 ES2发布,1999-12 ES3发布,成为js的通行标准 2007-10 ES4草案发布 2008-07 将ES4小部分内容提取,发布为ES3.1 2009-12 E…
参考博客: https://www.cnblogs.com/libin-1/p/6716470.html 一.新的变量声明方式 let/const 与var不同,新的变量声明方式带来了一些不一样的特性,其中最重要的两个特性就是提供了块级作用域与不再具备变量提升. 通过2个简单的例子来说明这两点. { let a = 20; } console.log(a); // a is not defined 而这个简单的例子,会被编译为: { let _a = 20; } console.log(a);…
自定义模块 为什么要模块?模块化源代码能给我们带来什么好处? 试想一个巨无霸网购平台,在没有模块化的情况下,如果出现bug,程序员就要在几百万行代码里调试,导致后期维护成本上升,为了解决问题,模块化按功能切分,把大问题转换成小问题,让每个模块独立运营,通过接口对外开放,让程序统一调用,降低程序出错的风险,也能方便升级模块内部的代码,不影响全局 创建模块(计算器) 模拟巨无霸程序(现有两个js文件 app.js server.js) 如果没有模块化程序,那么server.js也想用这些功能的时候也…
let:用来定义变量特点:只能在代码块里面使用,let拥有块级作用域;并且let不允许重复声明; 比如: var a = 12; var a = 5; alert(a); //5; let a = 12; let a = 5; alert(a); //报错;Identifier 'a' has already been declared 代码块:{}包 起来的代码,形成了一个作用域,比如if,for,while,json除外;块级作用域; var 只有函数作用域; 用处: 自执行函数: for(…
一.ES6字符串扩展 字符串模板 在传统的JavaScript语言中,输出模板通常是这样写的. 上面这种写法繁琐不方便,于是ES6中引入了字符串模板解决这个问题. 用反引号(`)标识.他可以当做普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量. 如果使用模板字符串表示多行字符串,所有的空格和缩进都会保留在输出当中. 上面代码中,所有模板字符串的空格和换行,都是被保留的,比如<ul>标签前面会有一个换行.如果你不想要这个换行,可以使用trim方法消除它. 模板字符串中嵌入变量,需…
一.新增命令let/const ①:let命令 1.let命令用来声明变量,它的用法类似于var,但是所声明的变量只在let命令所在的代码块内生效. 所以在for循环中,就很适合使用let命令. 上面代码中,i只在for循环体内有效,在循环体外就会报错. 在下面代码中,如果使用var,最后结果为 10. 上面代码中,变量i是var命令声明的,在全局范围内都有效,所以全局变量只有一个i.每一次循环,变量i的值都会被重新赋值,而循环内被赋给数组a的函数内部的console.log(i),里面的i指向…
1.let.const.var var是声明全局的变量,作用域是全局,const是声明全局的常量,不能修改,而let是块级变量只在当前声明的作用域中生效: { var a = 10; let b = 20; } console.log(a); // 打印a的值 console.log(b); // 报错:ReferenceError: b is not defined 2.var的标量声明提前现象 // 直接打印a的值,文件中没有声明a console.log(a);// 报错:Uncaught…
ES6 中除了使用 var 定义变量,还有let.const,定义变量. function getValue(condition){ console.log(typeof value2); // undefined,与 if 语句中的 value2 不在同一个作用域中 //console.log(typeof v); //临时死区,需要先定义后使用,ReferenceError: v is not defined let v = "e"; let value1; // let valu…
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:http://www.cnblogs.com/lvonve/ CSDN:https://blog.csdn.net/lvonve/ 在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目.现在就让我们一起进入 Web 前端学习的冒险之旅吧! 一.let 作用:…
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:http://www.cnblogs.com/lvonve/ CSDN:https://blog.csdn.net/lvonve/ 在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目.现在就让我们一起进入 Web 前端学习的冒险之旅吧! 一.Promise…
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:http://www.cnblogs.com/lvonve/ CSDN:https://blog.csdn.net/lvonve/ 在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目.现在就让我们一起进入 Web 前端学习的冒险之旅吧! 一.Generat…
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:http://www.cnblogs.com/lvonve/ CSDN:https://blog.csdn.net/lvonve/ 在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识点,期间也会分享一些好玩的项目.现在就让我们一起进入 Web 前端学习的冒险之旅吧! 一.字符串的扩展…
对象赋值 在es6中,可以直接将声明的变量赋值给对象:     Object.keys().Object.values()和Object.entries() 在ES6中,允许我们使用变量作为对象的key值:     而Object.keys方法,返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名: Object.values方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键值: Object.values方法返…
声明方式 var和let的区别 1,var用来声明全局变量,let用来声明局部变量:               2,var可以提升变量,let声明的变量不在变量提升:        const声明常量     变量解构赋值 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构. 数组解构赋值 例如上面要为三个变量赋值,我们就可以使用变量解构赋值:     在使用数组解构的时候,个数可以不一致,但是格式需要保持一致:                 对象解构赋值 数组是按照…
一.变量的声明 1.var 声明全局变量 在ES6中var用来声明全局变量. 2.let 声明局部变量 3.const 声明常量 二.变量的解构赋值 //1.数组赋值 let [a,b,c]=[1,2,3]; //模式要统一,左右两边要对应. let [a,[b,c],d]=[1,[2,3],4]; //2.对象赋值 属性名要一样 顺序可以不一样 let {name,age}={name:'兔子先生',age:3} //3.默认值 顺序是一一对应 let [a,b=2]=[3];//a=3 b=…
------------------------ECMAScript 6 简介------------------------ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现另外 ECMAScript 方言还有 Jscript 和 ActionScript ES6 = ES2015 查看node支持的es6特性:$ node --v8-options | grep harmony 查看自己浏览器对es6的支持:http://ruanyf.githu…
解构就是ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值(只能用于数组,对象或迭代器).如果解构不成功,则等于undefined,但不能赋值为undefined和null,因为undefined和null不属于数组或对象 1 数组的解构赋值 数组的解构赋值就是,按照数组元素的次序,取出它位置所对应的值,具体如下 var [a, b, c] = [1, 2, 3]; // a=1;b=2;c=3 相当于var a=1, b=2, c=3; // 也可以用于let,const声明变量 l…
ES5声明变量(2):var .function ES6声明变量(6):var.function.let.const.import和class 1.let命令和const命令 (1)let和const都不存在变量提升,都是快作用域[ES6](立马执行),const定义的常量不能被修改 (2)暂时性死区:在代码块内,使用let/const命令声明变量之前,该变量都是不可用的. (3)let,const不允许在相同作用域中重复声明 (4)块作用域中,允许声明函数(只在使用大括号的情况下),该函数行为…