es6 学习补充

1、let

  • 使用let声明一个变量,但是如果在变量声明之前就输出声明的变量,就会报错(ReferenceError),

  不过如果使用的是var的话,会输出undefined,这是因为在es6中不存在变量提升。

  • 只要let存在的会计作用域,就会存在暂时性死区,就是这个变量绑定了这个区域,这个区域的这个变量不受外部的

  的影响,即使外部声明了一个全局的变量。

  如果let变量声明之前使用typeof的话,那么就会输出ReferenceError,但是如果之后没有声明的话,就会输出undefined

  • let不允许相同作用域内,重复声明同一个变量,所以也不允许在函数内部声明参数,这样也会报错
  • 块级作用域作用域是没有返回值的,如果想要得到块级作用域的内部值,可以将块级作用域之前加上do,把它变为do表达式,这样就可以得到整个块级作用域的返回值了

2、const

  • 这是声明一个只读的变量,一旦声明之后就不能改变,不然会报错,所以也就意味着,一旦声明就必须立即初始化,不能留到之后再赋值。
  • 但是const的作用域与let命令相同,只在声明所在的块级作用域内有效,而且变量也是不提升的,同样存在暂时性死区,只能在声明的位置后面使用,也不可以重复声明

3、变量

  • 解构数组:解析赋值允许指定默认值,如果一个值有给他赋值默认值,然后他的数组成员严格等于undefined的时候,就会等于默认值
  • 可以使用圆括号的情况只有一种:赋值语句的非模式部分,可以使用圆括号。即需要是赋值语句而不是声明语句

4、字符串的扩展

  • 字符的Unicode表示法:这种表示法只限于码点在\u0000~\uFFFF之间的字符,超出这个范围的字符,必须用两个双字节的形式表示,如果超出这个范围的就会显示一个空格
  • codePointAt() :字符以UTF-16的格式储存,每个字符固定为2个字节,使用for...of循环,因为它会正确识别32位的UTF-16字符                                                                      
时间: 2024-08-09 02:03:28

es6 学习补充的相关文章

从零开始编写自己的C#框架——框架学习补充说明

非常感谢轩辕公子提出了对本框架的看法与意见,所以这里也将回复贴出来,让大家都了解一下 本系列的快速开发指的是,框架构建完毕后,在这个基础上开发新功能非常快捷方便,基本不用写太多代码就可以在短时间内完成大量的基本功能.当然如果直接将全部代码贴出来,直接上例子的话可能更容易理解,但这样的话对于很多想了解整个框架实现过程的朋友来说,一下子太多代码就很难理解最初的思路了,同时大家也看到每一章都会附上独立的解决方案也是这么一回事,通过循序渐进的方式来进行学习.原本想要写得更细更多章节的,但由于个人空闲时间

ES6学习目录

前面的话 ES6是JavaScript语言的下一代标准,已经在 2015 年 6 月正式发布.它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言 为什么要学习ES6呢?很多流行的JavaScript开源框架都使用ES6编写,如Vue.js.video.js.d3.js等等.不学习ES6,这些流行的框架将不容易上手:ES6可以大大提高开发效率,同时让语法更加规范化,一定程度上增强了代码安全:更重要的是,ES6是语言级别的升级,而并不是一个库或框架.既然迟

ES6学习笔记(一)

1.ES6学习之let.const (1).var.let.const 变(常)量声明 ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景. 在ES6中let就诞生了,实际上它为javascript新增了块级作用域. let只在变量声明时 ,所在的代码块中有效. 由于这一特性,let很适合在for循环中使用. 如下图是一个demo: let声明变量的特点: a:不存在变量提升: console.log(m);//Uncaught ReferenceError: m is

ES6学习一

一项新技术的出现肯定是为了解决一些问题,那么ES6的出现主要是解决了哪些问题?它的出现给我们带来了什么便利?当它没有出现的时候,某些问题怎么处理?ES6的方法和以前的方法比较又有什么不同呢?根据提出的这些问题,我开始了ES6学习之旅. ES6是在ES5的基础上对语法进行了修正以及添加了一些新的功能, 具体修正了哪些语法与添加了哪些新的功能,那就开始学习吧.      let                    ES6新增加了let命令,用于变量声明,与var的用法类似,不同的是所声明的变量只在

基于CentOS的MySQL学习补充三--使用Shell批量创建数据库表

本文出处:http://blog.csdn.net/u012377333/article/details/47006087 接上篇介绍<基于CentOS的Mysql学习补充二--使用Shell创建数据库>,本文继续探索关于Shell和MySQL的结合使用,我不知道当一个数据库设计完成之后如何快速的创建设计好的数据库表和添加相应基本数据,我目前知道的就是使用Shell和SQL脚本来达到我的目的--快速的.多次的.可重复利用的创建数据库表. 创建一个数据库表的SQL脚本: /***********

基于CentOS的Mysql学习补充二--使用Shell创建数据库

文章出处:基于CentOS的Mysql学习补充二--使用Shell创建数据库 关于使用基于命令使用mysql数据库的方法可见文章<基于CentOS的Mysql的使用说明>,本文只要介绍如何使用Shell脚本来创建我们想要的数据库,下面给出我创建数据库的Shell脚本,基本也就是将mysql的一些命令放在shell脚本里面而已. #!/bin/bash #Author: chisj #Time: 2015.7.22 #Describe: Create Database #The username

07: Django 学习补充

目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:ModelForm 数据验证 & 生成html & 数据库操作 06: Django Admin 07: Django 学习补充 1.1 待补充

es6学习笔记初步总结

es6学习笔记初步总结 1. let.const 和 block 作用域 在ES6以前,var关键字声明变量.无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部).这就是函数变量提升例如: let 关键词声明的变量不具备变量提升(hoisting)特性 let 和 const 声明只在最靠近的一个块中(花括号内)有效 当使用常量 const 声明时,请使用大写变量,如:CAPITAL_CASING const 在声明时必须被赋值 否则报语法错误SyntaxError

ES6学习及总结(二):对象的解构

ES6学习及总结(二):对象的解构 一:数组的解构 1:ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring).本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值. let [foo, [[bar], baz]] = [1, [[2], 3]]; foo // 1 bar // 2 baz // 3 let [ , , third] = ["foo", "bar", "