ES6(一)

一、变量提升

JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。

JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。

eg:

console.log(name,'name');

var name = 'zhangsan' // zhangsan,'name'

二、全局变量和局部变量

全局变量:其他任何位置使用var声明的的变量,函数除外,那么这个变量就是全局变量,全局变量可以在页面的任何位置使用。全局变量,如果页面不关闭,那么变量所占用的内存就不会释放,就会占空间,消耗内存。

局部变量:在函数内部定义的变量,是局部变量,外面不能使用 。

三、全局作用域和块级作用域

全局作用域:在JavaScript中{ }外面的作用域,就称之为全局作用域。既然是全局作用域,那么其中的声明的变量在全局中都可以使用。

块级作用域:一对大括号就可以看成是一块,在这块区域中定义的变量,只能在这个区域中使用,但是在js中在这个块级作用域中定义的变量,外面也能使用。(在ES6之前,只要{ }没有和函数结合在一起,那么{ }内的作用域就称为块级作用域。)

注意事项:
1、在块级作用域中,通过var定义的变量是全局变量;
2、在局部作用域中,通过var定义的变量是局部变量;
3、无论是在块级作用域还是局部作用域,只要省略了变量前面的let或者var,变量就会变成全局作用域里面的变量。

四、const、let、var的区别

const:是块级作用域,没有变量提升,不能声明同名变量,而且必须初始化,它声明的是常量,不可修改。

eg1:

const age = 18;

console.log('可以输出',age);

eg2:

const age = 18;

age = 12;

console.log('修改了const定义,无法输出',age)

解决方法:

const obj = {

name:'小红';

age = 18

}

obj.name = '小蓝'

console.log(obj)//可输出,小红变成了小蓝

let:没有变量提升,是块级作用域,不能声明同名变量,它声明的是变量,可修改,函数内部使用let定义后,对函数外部无影响。

var:var定义的变量可以修改,如果不初始化会输出undefined,不会报错。

五、模板字符串

模板字符串:``解析变量,保留原格式。

var a = '小绿'

var b = '${a}哈哈哈' //小绿哈哈哈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值