1.写法不一样 //function function fn(a,b){ return a+b } //arrow function var foo = (a,b)=>{ return a+b } 2.this的指向,function中的this可变(window,内部),箭头函数固定不变指向win ...
分类:
其他好文 时间:
2020-02-13 23:11:04
阅读次数:
95
ES6Module 1. import 必须出现在顶级作用域中,会变量提升,导入的变量不能赋值。 2. export 必须出现在顶级作用域中,export导出的是变量(接口)。 3. 合并导出 不能使用导出的变量。 4. 动态导入 可以在作用域中导入。 ...
分类:
其他好文 时间:
2020-02-10 17:47:22
阅读次数:
56
在js中只有两种作用域,全局作用域和函数作用域,在ES6之前,js是没有块级作用域。 JavaScript 代码的执行分为两个阶段。第一个阶段在当前词法环境中注册所有的变量和函数声明,简单说就是,解析,解析完成之后,第二个阶段的 JavaScript 执行就开始了! JS中创建函数有两种方式:函数声 ...
分类:
其他好文 时间:
2020-02-03 19:19:21
阅读次数:
85
变量提升与函数提升 变量提升: 在变量定义语句之前, 就可以访问到这个变量(undefined) 函数提升: 在函数定义语句之前, 就执行该函数 先有变量提升, 再有函数提升 变量声明提升、函数声明提升 理解 执行上下文: 由 js引擎 自动创建的对象, 包含对应作用域中的所有变量属性 执行上下文栈 ...
分类:
其他好文 时间:
2020-01-31 14:36:26
阅读次数:
71
es6的块级作用域通俗的讲就是一对花括号中的区域(声明对象的花括号不是块级作用域),块级作用域可以嵌套。 let: 1、le声明的变量只在当前(块级)作用域内有效。 2、let声明的变量不能被重复声明。否则同一作用域下会报错,不同块级作用域可以定义同名变量。 3、let不存在变量提升。先打印再声明会 ...
分类:
其他好文 时间:
2020-01-29 19:31:53
阅读次数:
67
什么是ES6 ES 的全称是 ECMAScript , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范。 为什么使用 ES6 ? 每一次标准的诞生都意味着语言的完善,功能的加强。JavaScript语言本身也有一些令人不满意的地方。 变量提升特性增加了程序运行时的不可预测性 语法过 ...
分类:
其他好文 时间:
2020-01-27 15:32:48
阅读次数:
52
let(★★★) ES6中新增了用于声明变量的关键字let: let关键字就是用来声明变量的 使用let关键字声明的变量具有块级作用域 在一个大括号中,使用let关键字声明的变量才具有块级作用域, var关键字是不具备这个特点的 防止循环变量变成全局变量 使用let关键字声明的变量没有变量提升 使用 ...
分类:
其他好文 时间:
2020-01-27 15:15:40
阅读次数:
58
这几天刷题频繁碰见变量提升以及作用域问题,这里总结一下 先看题 , 思考 : 每次输出的值是什么 js var a = "js"; function ts(){ console.log(a); } ts() js var name = "小明"; function showoneName () { ...
分类:
编程语言 时间:
2020-01-25 18:07:30
阅读次数:
262
1.变量声明let和const 我们都是知道在ES6以前,var关键字声明变量。无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部)。这就是函数变量提升例如: function aa() { if(bool) { var test = 'hello man' } else ...
分类:
其他好文 时间:
2020-01-25 10:25:57
阅读次数:
71
一、ECMAScript与JavaScript 的关系 前者是后者的规格,后者是前者的一种实现。在日常场合,这两个词是可以互换的。 二、let和const命令 1、let与var var:变量提升 与 let:块级作用域 <script> console.log(a) //输出结果: undefin ...
分类:
编程语言 时间:
2020-01-23 11:16:38
阅读次数:
90