美文网首页
变量声明、声明提前和作用域

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

作者: 小伙儿_0c3c | 来源:发表于2018-03-01 17:02 被阅读0次

一. 作用域

分为全局作用域和函数作用域

函数作用域简言之就是:变量在声明他们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。

二 .声明提前

变量在声明之前就已经可用。我们称这种特性为声明提前,也就是函数里的所有变量都被“提前”至函数体的顶部。

有以下几种方式

1. var a;     即:  var a = undefined;

2. a = 1;        即:   var a = 1;(全局变量)

3. var a = 1;   即:  前两种的组合

下面陷阱分析:

var v ="yoyo";   //全局变量声明,全局作用域,即:var v = undefined; var v ="yoyo";

(function(){ 

    console.log(v);     //由于声明提前,此段代码前有一段var v = undefined; 函数作用域,所以此时输出undefined

     var v ="check now";     //此处 var v ="check now";赋值了局部变量;所以下方输出"check now"

     console.log(v); 

})(); 

相关文章

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

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

  • 进击的js

    JavaScript解析器将当前作用域内声明的所有变量和函数都会放到作用域的开始处,但是,只有变量的声明被提前到作...

  • js总结(5.作用域)

    作用域 1.变量的作用域 2.函数作用域的变量 3.全局作用域的变量 4.注意 5.声明提前:

  • var let const之间的区别?

    1.var ①var声明的变量没有块级作用域,只有函数作用域和全局作用域 ②var声明的变量有变量提升 ③变量可以...

  • 作用域和预解析 关键字

    let,cosnt 作用域限制在{} const XXX_FFvar 全局变量 预解析(将声明的变量提前,声明...

  • ES6学习笔记

    变量 var 声明变量没有块级作用域可以重复声明不能限制 let 声明变量支持块级作用域禁止重复声明 con...

  • es6学习总结

    let 声明变量具有块级作用域,for循环声明变量有个特点,声明变量部分是父作用域,代码块为子作用域,且互不影响,...

  • let和var的区别

    var 和 let 都是用于变量声明的关键字 作用域var 是函数级作用域,let是块级作用域 变量提升问题 声明...

  • JS笔记---声明

    一、声明变量 1.var x;---变量声明提升,作用域为声明该变量的函数; 2.let x ;---语句块作用域...

  • ES6新特性整理

    let和const命令 var:声明变量,更多的是全局作用域,存在变量提升 let:声明变量,存在于块级作用域,不...

网友评论

      本文标题:变量声明、声明提前和作用域

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