直接先看两段代码 function getSum() { var sum = a + b; var a = 1; var b = 2; return sum; } getSum(); function getSum() { var sum = a + b; a = 1; b = 2; return ...
分类:
编程语言 时间:
2017-05-22 22:17:26
阅读次数:
104
今天在知乎看前端面试题的时候,看到这样的问题,发现自己懂的真的是太少了,看了给的例子,所以写一下自己的理解。 首先放一段代码: 很明显,这样的是会弹出对话框; 将alert(v)写到一个函数中: 这样弹出的结果肯定也是和第一个一样;那么下面这种方式输出的结果是什么? 第一个console会打印und ...
分类:
编程语言 时间:
2017-05-20 23:41:22
阅读次数:
190
一、let命令 1.let命令所在的代码块内有效,var声明的在全局范围内都有效 2.for循环的计数器,就很合适使用let命令 3.let声明的内部变量i和外部变量i是分离的 4.var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined let命令不会发生“变量提升”现象 ...
分类:
其他好文 时间:
2017-05-16 17:22:04
阅读次数:
396
1. let命令 let 命令不存在变量提升let 命令 只在let命令所在的代码块内有效。 特别适合 for 语句 其实对于上面的代码, babel 转码以后变成 for循环还有一个特别之处,就是循环语句部分是一个父作用域,而循环体内部是一个单独的子作用域。 暂时性死区, temporal dea ...
分类:
其他好文 时间:
2017-05-16 13:00:32
阅读次数:
212
Effective Go(官方文档)笔记 自己主动局部变量提升(编译期完毕?):return &...;内置函数: new/makecopy, appenddeleterange(这是keyword吧?由于后面没有()) array是值对象slice:引用array 2维切片(略) map if s ...
分类:
其他好文 时间:
2017-05-13 11:19:34
阅读次数:
198
参考资料: http://es6.ruanyifeng.com/#docs/let 测试环境(本文的代码均是在chrome下运行) 在<script>标签中添加'use strict',即严格模式 let const 没有变量提升 总结 const和let命令都是es6在es5声明变量方法(var ...
分类:
其他好文 时间:
2017-05-12 19:03:16
阅读次数:
151
1、变量提升 根据javascript的运行机制和javascript没有块级作用域这个特点,可以得出,变量会声明提升移至作用域 scope (全局域或者当前函数作用域) 顶部的。 变量声明提升至全局域 变量声明提升至当前函数域 2、undefined和未定义(not defined)区别 unde ...
分类:
Web程序 时间:
2017-05-12 00:00:42
阅读次数:
261
一、先说一个简单的概念——变量提升: 通过function+函数名的方式,声明的函数,可以在代码中的任何位置调用; 通过var定义变量的方式,声明的函数,则必须在声明之后进行调用,原因就是在变量定义之前调用时,变量的值为undefined; 二、说一个特别重要的概念——函数在定义的时候(不是在调用的 ...
分类:
编程语言 时间:
2017-05-10 21:19:44
阅读次数:
207
一、先说一个简单的概念——变量提升: 通过function+函数名的方式,声明的函数,可以在代码中的任何位置调用; 通过var定义变量的方式,声明的函数,则必须在声明之后进行调用,原因就是在变量定义之前调用时,变量的值为undefined; 二、说一个特别重要的概念——函数在定义的时候(不是在调用的 ...
分类:
编程语言 时间:
2017-05-10 12:58:03
阅读次数:
165
/**********seperate line************/ var a = 10; function test() { a = 100; console.log(a); console.log(this.a); var a; console.log(a); } test(); VM3 ...
分类:
Web程序 时间:
2017-05-10 01:04:54
阅读次数:
260