前言ES6的出现是为了提高 javascript 的严谨性,安全性等方面,它代表着js的发展方向。网站开发的人员,无论前后端都必须熟稔 ES6 语法规范。带着问题看书1. ES6 新增的关键词 let 和 var 区别?a. 使用let声明的变量,只在它所在的代码块内有效。即如果使用let,声明的变量仅在块级作用域内有效。
b. var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为
转载
2024-03-12 17:47:24
78阅读
入门读书笔记(十四):async 函数1. 含义ES2017 标准引入了 async 函数,使得异步操作变得更加方便。async 函数是什么?一句话,它就是 Generator 函数的语法糖。async函数就是将 Generator 函数的星号(*)替换成async,将yield替换成await,仅此而已。async函数对 Generator 函数的改进,体现在以下四点。内置执行器async函数的
Promise的含义 promise是异步编程的一种解决方法,比传统的回调函数和事件更合理更强大。他由社区最早提出和实现,ES6将其写进语言标准,统一了用法,原生提供了promise对象。所谓promise,简单说是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果,从语法上说,promise是一个对象,从它可以获取异步操作的消息,promise提供了统一的API,各种异步操
let 和 const 命令1.let用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。 2、var 与let声明不同 在使用var时,变量可以先使用后声明,输出值为undefined。 在使用let,变量必须先声明后使用 3、不允许重复声明 let不允许在相同作用域内,重复声明同一个变量。 因此,不能在函数
转载
2024-07-29 16:36:46
39阅读
一、相关背景介绍我们现在大多数人用的语法javascript 其实版本是ecmscript5,也是就es5。这个版本己经很多年了,且完美被各大浏览器所支持。所以很多学js的朋友可以一直分不清楚es5和javscript的关系。javascript是一门编程语言,那么它就会有版本,es5还是es6 就就是它的版本号。最新版es7己经在紧锣密布的进行中,它最新的语法会让我们写代码更新的行云流水。想了解
转载
2024-02-26 12:49:42
114阅读
读阮一峰《ECMAScript 6 入门》小结,http://es6.ruanyifeng.com/1. ES6简介Babel 是一个广泛使用的 ES6 转码器,可以将 ES6 代码转为 ES5 代码 在线转换:https://babeljs.io/repl/2. let和const命令let在块级作用域内有效,var有变量提升(变量可以在声明之前使用,值为undefined),声明的变量有内
转载
2024-04-28 14:57:51
54阅读
全局作用域 函数作用域 块级作用域一:块级作用域1.外层作用域无法读取内层作用域的变量2.let const声明的变量只能先声明,后使用。 let const都是块级作用域! const声明的变量必须赋初始值且不可变,像final! 不可变是指引用不可变,也就是内存中的那片地址。 Object.freeze(要冻结对象) 引用指向的对象不可变哦! const声明引用不可
转载
2023-07-29 23:24:30
367阅读
什么是 ReST阮一峰说的比较清楚,具体见他的博客文章。二、名称
ReST这个词,是[Roy Thomas Fielding](http://en.wikipedia.org/wiki/Roy_Fielding)在他2000年的[博士论文](http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm)中提出的。
Fielding是一个非常
转载
2024-04-01 17:03:19
80阅读
Class的基本用法1. 类的由来2. constructor() 方法3. 类的实例4. 取值函数(getter)和存值函数(setter)5. 静态方法6. 私有方法和私有属性7. 类的注意点1. 严格模式2. 不存在变量提升3. Generator 方法4. this指向 1. 类的由来JavaScript 语言中,生成实例对象的传统方法是通过构造函数。function Point(x,
转载
2024-04-18 10:18:28
309阅读
历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。其他语言都有这项功能,比如 Ruby 的require、Python 的import,甚至就连 CSS 都有@import,但是 JavaScript 任何这方面的支持都没有,这对开发大型的、复杂的项目形成了巨大障碍。在 ES6 之前,社区制定了一些模块加载方案,最主要的
转载
2024-04-09 17:24:52
48阅读
一、let与const:let声明的变量只在let命令所在的代码块有效,let只能声明一次,不存在变量提升,存在暂时性死区。const声明一个只读变量,一旦声明,常量的值就不能改变,声明的同时必须初始化,不存在变量提升,存在暂时性死区,只是保证地址不变就可以,如果指向一个{},是可以给该对象添加属性的,但是不能指向别的对象。var声明的变量在方法块内有效,var可以声明多次,变量提升。经典案例:f
转载
2024-03-22 12:32:08
38阅读
阮一峰ES6入门读书笔记(六):对象属性的简洁表示法ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。const foo = 'bar';
const baz = {foo};
baz // {foo: "bar"}
// 等同于
const baz = {foo: foo};上面的代码中,变量 foo 直接写在大括号里面。这时,属性名就是变量名,属性值就是
转载
2024-03-17 10:56:32
126阅读
阮一峰ES6入门读书笔记(十五):ClassClass 基本语法ES6 的 class 可以看作是一个语法糖,它的绝大部分功能,ES5 都可以做到。可以通过下面两段写法来比较两者的不同//ES5写法
function Point(x, y) {
this.x = x;
this.y = y;
}
Point.prototype.toString = function () {
ret
转载
2024-05-15 18:51:43
85阅读
异步在给我们解决阻塞的问题时也带来一些别的问题 开发中调用接口经常是异步的,然后不小心就会犯的错误就是接口的数据还没有返回,我们就当作它已经返回了,然后继续处理,当然就会发生错误。 为了避免数据还没返回就继续执行,我们一般会在回掉函数里面继续些,但当层次多的时候不免会越来越乱,可读性别差 ES6引入promise函数处理异步问题,比之前好多了,但也并没有达到像写同步一样,ES7的两个新东西解
转载
2024-06-28 11:04:27
47阅读
一、ES6声明变量的六种方法ES5 只有两种声明变量的方法:var命令和function命令。ES6除了添加let和const命令,另外两种声明变量的方法:import命令和class命令。所以,ES6 一共有6种声明变量的方法。1、let变量在代码块中有效。比如用for循环计数器,就很适合用let变量。2、var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined。这种现
转载
2024-03-30 17:20:01
57阅读
模板字符串// 普通字符串
`In JavaScript '\n' is a line-feed.`
// 多行字符串
`In JavaScript this is
not legal.`
console.log(`string text line 1
string text line 2`);
// 字符串中嵌入变量
let name = "Bob", time = "today";
`
转载
2024-04-09 00:48:13
124阅读
前言昨日在部分群里引起了一些讨论,其中有一点是关于箭头函数的 this 指针的问题。使用了阮一峰《ES6 入门》文章的内容来反驳。在今日得到阮一峰老师的解释之后,特更新本文内容。为了隐私,屏蔽掉了微信昵称: 上述截图,来自阮一峰的《ECMAScript 6 入门》: 下面我们就来看看箭头函数的 this 到底是啥样的,应该怎么理解阮一峰文中的内容!一道题引发的灾难起初,群里一个朋友抛出了这个疑
阮一峰ES6学习笔记(1)ES61、let2、const3、ES6 声明变量的六种方法4、顶层对象5、解构赋值 ES61、letvar定义的是全局变量,并且允许在变量声明前使用它;let定义的是块级变量,只在当前作用域有用,不允许在声明前使用它,当在当前作用域绑定了该变量后,全局同名的变量将在该作用域失效,也就是说在当前作用域内,该变量名的使用权全归let;另外,for循环还有一个特别之处,就是
转载
2024-04-22 11:14:37
204阅读
ES6入门(一)建议大家去读一下阮一峰的es6教程,写的非常的全面,只有在实际的项目中使用过,才能深入的了解es6的属性,下面我只对一些属性做简要的概括,如果有什么不足请大家多多指正,一起学习,共同进步!1、let和constlet和const相比于var来说,具有块级作用域,只会在作用域内有效为什么需要块级作用域?ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景。 第一
转载
2024-04-28 12:02:17
124阅读
1. let和const1.let 和 const不存在变量提升问题; 2.let 负责定义变量、const 负责定义常量; 3.二者在同一作用域内(即{}内) 不允许重复声明同一变量名; 4.const 声明后需立即赋值,不然会报错; 5.使用lett定义变量时,该变量不允许使用,此区间称为 暂存性死区// 暂存性死区
if (true) {
// TDZ开始
tmp = 'abc';
转载
2024-03-26 12:27:49
131阅读