javascript let和const命令
博客专区 > chang江 的博客 > 博客详情
javascript let和const命令
chang江 发表于7个月前
javascript let和const命令
  • 发表于 7个月前
  • 阅读 4
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: es6语法入门

 第一次写博客,直接上代码了。

//{} 花括号是代码块  let命令只在代码块内有效
'use strict'
{
    let a = 10;
	var b = 20;
	console.log(a)	//10
	console.log(b)	//20
}
console.log(b)	//20
console.log(a)	//ReferenceError 引用错误
'use strict'

//let 只在循环体内有效 如果在循环体外引用就会报错
//如果是var会在全局范围内有效

for(let i=0;i<10;i++){}
console.log(i) //ReferenceError  ruai fe run ci

//for循环还有一个特别之处,就是循环语句部分是一个父作用域,而循环体内部是一个子作用域
for(let i = 0 ; i < 3 ; i++){
	let i = "abc";
	console.log(i)
}
//abc
//abc
//abc
'use strict'
//var命令会发生"变量提升"现象,即变量可以在声明之前使用,值为undefined

//let不存在变量提升
//为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错

//var
console.log(foo);  //undefined
var foo="2"

//let
console.log(bar); //报错:ReferenceError  引用错误
let bar="1"
'use strict'
//暂时性的死区

//1:只要在块级作用域内存在let命令,它所声明的变量就绑定到了这个区域,不在受外部影响
var t = 123;
if(true){
	t = "abc";	//ReferenceError
	let t;
}
//上面代码中存在全局变量t,但是块级作用域内又声明了一个局部变量t,导致后者绑定这个块级作用域


function bar(x = y, y = 2){
	return [ x, y]
}
bar(); //ReferenceError :y is not defined
//调用bar函数报错,是因为参数x默认值等于另一个参数,而此时y还没有声明,属于死区,如果y的默认值是x就不会报错了
  1. const的作用域和let命令相同,只在声明所在的作用域内有效
  2. const声明一个只读的常量。一旦声明,常量的值就不会改变(const的值也不是不可变得)

const的值也不是不可变得,而是变量指向的内存不可变。

  1. 简单类型(数值,字符串,布尔)的值保存在变量指向的内存,等于常量
  2. 符合类型(数组和对象)变量指向的内存,保存的是一个指针,所以数据结构的变化是不受控制的
标签: javascript
共有 人打赏支持
粉丝 0
博文 3
码字总数 1620
×
chang江
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: