美文网首页
变量提前声明的特点

变量提前声明的特点

作者: 默成S | 来源:发表于2018-01-05 22:05 被阅读0次
console.log(name);
var name = 'xiaoming';
console.log(name);

以上两个输出分别是什么?为什么?

console.log(name);
let name = 'xiaoming';
console.log(name);

以上两个输出分别是什么?为什么?

console.log(name);
const name = 'xiaoming';
console.log(name);

以上两个输出分别是什么?为什么?


var :声明会提前</br>
let :声明不会提前 限定作用域</br>
const :声明不会提前,常量 声明时必须赋值 赋值后不可变更 不可重新声明 限定作用域

在js里不论是使用var或let来声明一个变量,还是使用const来声明一个常量(不可重复赋值的变量),为了能正确使用它都需要有声明、定义、赋值三个过程。var、let和const的相同之处在于,不论他们在自己作用域里的那个位置,它们对变量的声明都会提前到函数定义的顶部,即声明提前。不同之处在于,var在提前声明以后该变量在整个作用域里都可使用,也叫变量提升。在作用域定义赋值之前它也被认为是存在的,只是值是“undefined”。而let和const声明提前以后不会变量提升,在作用域里定义赋值之前的部分会对该变量形成一个“暂时性死区”,也就是认为该变量不存在,也不可使用。在死区内使用该变量就会报错——即,后两个题目都会报错,并不会输出xiaoming。

相关文章

  • 变量提前声明的特点

    以上两个输出分别是什么?为什么? 以上两个输出分别是什么?为什么? 以上两个输出分别是什么?为什么? var :声...

  • js中( function(){…} )()和( functio

    提前知识:声明提前,变量声明提前,函数声明提前,声明提前的先后顺序[https://www.cnblogs.com...

  • Web之JavaScript(散碎笔记)

    JavaScript有变量提升的特点, 全文件扫描js文件时会自动将声明变量提前,但是这里需要注意的一个地方是: ...

  • ES6新语法特性收录

    let const 声明变量 1. let变量声明 let的特点是不会变量提升, 2. const 变量声明 c...

  • 11.23图片轮播

    声明提前 声明提前会把变量声明提前,但是不会把赋值提前, 开关 图片的src不能作为判断条件;2种状态的切换,可以...

  • var 与let

    1.声明提升 使用var 声明变量,声明会提升到顶部 使用let 声明变量不会提前 在函数内部用var声明变量,只...

  • 变量声明、声明提前和作用域

    一. 作用域 分为全局作用域和函数作用域 函数作用域简言之就是:变量在声明他们的函数体以及这个函数体嵌套的任意函数...

  • var、function和let、const定义变量区别

    var、function 定义变量特点 存在变量提升 可以重复声明 全局作用域下 var声明的变量,会在windo...

  • 奇怪的js 变量声明提前

    最近学习到js的变量声明提前部分,然后搜索看看网上的文章,然后发现了一个非常好玩的东东 根据声明提前的规则结果是 ...

  • js循环和判断

    变量和函数预解析 变量预解析alert(a);//只把变量a的声明提前,赋值不提前,所以弹出undefined,表...

网友评论

      本文标题:变量提前声明的特点

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