1.let所声明的变量,只在let命令所在的代码块内有效。 效果: 8 Uncaught ReferenceError: a is not defined 2.不存在变量提升 3.不许重复使用 let不允许在相同作用域内,重复声明同一个变量。 ...
分类:
其他好文 时间:
2018-09-06 12:41:18
阅读次数:
139
/*变量提升* 在JS代码执行之前,浏览器要先过一遍代码,把其中带var和带function 关键字内容提前声明* 带var 是只声明(给个默认值undefined) 不定义* 带function 声明加定义** 因为 用function 关键字声明的函数 在变量提升阶段已经赋值完成,* 所以我们可 ...
分类:
其他好文 时间:
2018-09-05 21:50:13
阅读次数:
167
// 函数声明法 function add(n1:number,n2:number):number{ return n1 + n2 } console.log(add(1, 2)) // 3 // 函数表达式法 var add = function(n1:number,n2:number):numb ...
分类:
其他好文 时间:
2018-09-05 17:35:46
阅读次数:
140
首先先看一段代码 不知道大家猜的结果是什么,是报错?还是是10,亦或者是undefined, 正确答案是undefined,之所以出现这种情况是因为变量提升到了当前作用域的顶部。 可以这样理解上面的代码 可以清楚看到结果。 但是如果是一个函数呢? 这里的运行结果会出现什么情况呢? 报错还是正常运行呢 ...
分类:
其他好文 时间:
2018-09-04 19:02:34
阅读次数:
125
变量声明const和let在ES6之前,我们都是用var关键字声明变量。无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部)。这就是函数变量提升例如: function aa() { if(bool) { var test = 'hello man' } else { c ...
分类:
其他好文 时间:
2018-08-26 20:47:10
阅读次数:
151
1, 声明变量const let var ES6以前var关键字来声明变量,无论声明再何处都存在变量提升这个事情,会提前创建变量 作用域也只有全局作用域以及函数的作用域,所以变量提升再函数顶部或全局作用域顶部 let关键字表示变量,const表示常量,都是块级作用域,比如一个函数内部,代码块{}内部 ...
分类:
其他好文 时间:
2018-08-25 21:23:34
阅读次数:
127
##声明 let 不支持重复声明(重复声明会报错) let 与 var的区别 1.变量提升 2.通过var声明的变量不存在块级作用域(不受{}控制) ##数据类型 基本数据类型(5+1) 1.undifined 2.null 3.number 4.boolean 5.string 6.symbol( ...
分类:
Web程序 时间:
2018-08-25 14:10:55
阅读次数:
186
js变量提升 对于大多数js开发者来说,变量提升可以说是一个非常常见的问题,但是可能很多人对其不是特别的了解。所以在此,我想来讲一讲。 先从一个简单的例子来入门: 你觉得以上的代码会输出什么?是输出undefined吗?如果是按照程序的自上而下执行的话,那么这一段代码确实是输出undefined。然 ...
分类:
编程语言 时间:
2018-08-23 19:28:31
阅读次数:
191
与var不同,新的变量声明方式带来了一些不一样的特性,其中最重要的两个特性就是提供了块级作用域与不再具备变量提升。 通过2个简单的例子来说明这两点。 而这个简单的例子,会被编译为: 变量提升demo示例 变量提升demo示例 当然,你的代码编译成为了ES5之后,仍然会存在变量提升,因此这一点只需要我 ...
分类:
其他好文 时间:
2018-08-23 02:07:12
阅读次数:
173
let关键字定义变量、const关键字定义常量 1、 let关键字定义变量 A、var特性 var 关键字缺点: 1、有变量提升问题 2、没有块级作用域 B、let特性: 1、没有变量提升 2、有 { } 作用域 有块级作用域的效果 2、const定义常量 const特性: 1、 没有变量提升的问题 ...
分类:
其他好文 时间:
2018-08-22 22:48:45
阅读次数:
162