1.语句 语句和表达式的区别在于,前者主要为了进行某种操作,一般情况下不需要返回值;后者则是为了得到返回值,一定会返回一个值。 一条语句可以包含多个表达式。 2.变量 注意变量提升 console.log(a); var a = 1; 3.条件语句 3.1 if 结构 为了避免 混淆“赋值表达式”( ...
分类:
Web程序 时间:
2017-06-13 18:27:40
阅读次数:
223
变量提升(Hoisting) 一.块级作用域 块级作用域中声明的变量不会影响到外部作用域。 二.javascript中的块级作用域 1.javascript中的if...else..并不会创建新的作用域, 2.javascript是函数级作用域,只有函数才能创建新的作用域 三.var声明的变量提升 ...
分类:
编程语言 时间:
2017-06-11 18:23:48
阅读次数:
137
变量,作为编程语言最基础的部分,每种语言的变量不尽相同,但又大径相庭。大部分编程语言的变量有块级作用域,如if、for、while... 但JavaScript不纯在块级作用域,而是函数作用域,并且有自己独有的特性--变量提升。(ES6新添加的let、const使其可以用块级作用域) 对于函数的变量 ...
分类:
Web程序 时间:
2017-06-08 00:21:23
阅读次数:
336
由于ES5只有全局作用域和函数作用域,因此ES6增加块级作用域。 let用于定义变量,块级作用域,for循环建议使用let; let会引起变量提升,必须先声明,在调用; let声明的变量,不允许重复声明; let实际是创建了块级作用域,可以变成do表达式 例:let x = do { let t = ...
分类:
其他好文 时间:
2017-06-06 15:54:16
阅读次数:
124
作用域(Scoping) javascript作用域之所以迷惑,是因为它程序语法本身长的像C家族的语言。我对作用域的理解是只会对某个范围产生作用,而不会对外产生影响的封闭空间。在这样的一些空间里,外部不能访问内部变量,但内部可以访问外部变量。 c语言的变量分为全局变量和局部变量,全局变量的作用范围是 ...
分类:
Web程序 时间:
2017-06-03 11:32:33
阅读次数:
279
ES5中只有函数作用域和全局作用域,声明变量使用var,在es6中添加声明变量 let const let 声明块级作用域变量, let 不存在变量提升 var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语 ...
分类:
其他好文 时间:
2017-06-02 11:35:06
阅读次数:
201
es5是没用常量声明这个选项,es6将其添加其中。 1.基本用法 const 声明一个只读常量。一旦申明,常量的值就不能改变。 const 声明的变量,一旦声明必须初始化(即赋值),否则报错。 除此之外,const的声明常量类似let声明的变量: a> 不存在变量提升 b> 只在声明所在的块级作用域 ...
分类:
其他好文 时间:
2017-05-28 16:49:16
阅读次数:
149
1 函数的定义和调用 基本格式 函数体中的return一旦执行, 函数就不在执行而是返回了 如果没有return, 则函数执行完毕就结束, 返回的值是undefined 第二种函数定义 注意最后严谨一点加上分号表示赋值语句结束, 整个句子表示将函数赋值给一个变量, 该变量(参数列表) 就可以执行函数 ...
分类:
其他好文 时间:
2017-05-26 18:57:25
阅读次数:
154
来自:http://h5monkey.github.io/2015/05/09/ES6%EF%BC%88%E4%B8%80%EF%BC%89/ 基本语法let是块级作用域,函数内部使用let定义后,对函数外部无影响。 const定义的变量不可以修改,而且必须初始化。 ...
分类:
其他好文 时间:
2017-05-24 14:40:39
阅读次数:
140
在ES6中,js首次引入了块级作用域的概念,而什么是块级作用域? 众所就知,在js当中存在预解析的概念,就是变量提升。并且只存在全局作用域和私有作用域。在全局定义的变量就是全局变量,而在函数内部定义的变量称为私有变量。而在if判断和for循环之类的都是全局变量。 而块级作用域,就是在一个作用域中,该 ...
分类:
其他好文 时间:
2017-05-23 13:07:29
阅读次数:
176