作用域,变量,常量

作者: 冰冰啦 | 来源:发表于2018-12-19 00:41 被阅读0次

1.新的两种变量声明方式

  • let 和 const
    通过var声明变量有几个小问题: 1.可以重复声明 2.不能定义常量 3.不支持块级作用域 4.变量提升,可以认为没有预编译

let不能重复声明:

let a = 1
let a = 2 //报错

块级作用域:

if(true){
  var b = 1
}
console.log(b) //b是1
-----------------------------------
if(true){
  let a = 1
}
console.log(a) //报错,a没有定义
--------------------------------------------
//以前的js只有两个作用域:全局作用域和函数级作用域
// let不会变量提升
let a = 2
{
  console.log(a) //报错,a没有定义,只有一个语句块的话,不会打印外部的a
  let a = 1
  console.log(a) //a为1
}
-------------------------------------------------------
//经典应用
for(var i = 0;i< 2;i++){
  setTimeout(function(){
    console.log(i) //打印 2 2,因为i是全局变量,事件循环后i已经变为2
  },1000)
}
-----------------------
for(let i = 0;i< 2;i++){
  setTimeout(function(){
    console.log(i) //打印 0 1,i是for循环内部的变量
  },1000)
}
//对应的es5代码
var loop = functiton(i){
  setTimeout(functtion(){
    console.log(i)
  },1000)
}
for(var i = 0;i< 2;i++){
  loop(i)
}
--------------------------------

定义常量:

const PI = 3.14 //不能重新赋值
PI = 5 //报错
-----------------------------------
//注意
const user = {name: '冰冰'}
user.name = 'jack' //不报错,user引用的地址不能修改,
//但是地址引用的堆内存数据可以修改
user = {name: '天天'} //报错,另开一块内存是不行滴

关于循环

for(let i =0; i < 5; i++) {
  ...
}

这里会形成5个块级作用域

相关文章

  • ES6之常变量

    声明常量 声明常量 块级作用域的写法 说明: 声明变量 let 声明常量 const 都是 块级作用域 ,只在所在...

  • Python基础重构-1.2数据类型

    1、变量和常量 变量作用域 Python的作用域一共有4种,分别是:L (Local) 局部作用域E (Enclo...

  • es6新增特性

    一、变量的改变 let 用来声明变量(块级作用域) const 用来表示常量(块级作用域) 块级作用域 就是在{}...

  • 作用域,变量,常量

    1.新的两种变量声明方式 let 和 const通过var声明变量有几个小问题: 1.可以重复声明 2.不能定义常...

  • ES6系列之变量与块级作用域

    本篇目录: 变量常量 const命令常量的定义const定义常量的本质let命令 块级作用域为什么需要块级作用域E...

  • let、const命令

    这两个命令声明的都是块作用域变量和常量 let 变量 es5没有块作用域,所以此处i的作用域为test的函数作用域...

  • iOS-static const extern与多个关键字的使用

    静态变量、静态常量、全局变量 静态变量 当我们希望一个变量的作用域不仅仅是作用域某个类的某个对象,而是作用域整个类...

  • ES 6 新特性列表

    作用域块级作用域块级变量 let块级常量 const 箭头函数sum = (a, b) => a + bnums....

  • ES6-01

    一、let和const 作用:声明变量和常量 ①作用域是当前代码块({})②作用域不会被提升③在相同的作用域不能声...

  • es6

    1.let(变量) 与 const(常量) 声明 变量和常量 var let 的使用: (1)作用域只局限于当...

网友评论

    本文标题:作用域,变量,常量

    本文链接:https://www.haomeiwen.com/subject/fbarkqtx.html