Javascript Hoisting( 变量提升)
来源:互联网 发布:学白话大全软件 编辑:程序博客网 时间:2024/06/05 18:43
Javascript Hoisting( 变量提升)
先理解Javascript Hoisting的概念。
Javascript Hoisting:In javascript, every variable declaration is hoisted to the top of its declaration context.
我的理解就是在Javascript语言中,变量的声明(注意不包含变量初始化声明var name,初始化就是赋值 name=2)会被提升(置顶)到声明所在的上下文,也就是说,在变量的作用域内,不管变量在何处声明,都会被提升到作用域的顶部,但是变量初始化的顺序不变。
var myvar = '变量值'; (function() { console.log(myvar); // undefined var myvar = '内部变量值'; })();
输出的的是undefined。
因为它等价于
var myvar = '变量值'; (function() {
var myvar; console.log(myvar); // undefined myvar = '内部变量值'; })();
在函数内把定义的变量的声明放在最开始的位置了。当时只声明没有定义,所以是undefined。
1 //测试代码----------------------2 var myvar = '变量值'; 3 (function() { 4 console.log(myvar); // ?5 myvar = '内部变量值'; 6 })();
输出的是变量值
再看两个例子
var foo = 1;function bar() {if (!foo) {var foo = 10;}alert(foo);}bar();
输出的是10.var a = 1;function b() {a = 10;
alert(a)--------输出的是10return;function a() {}}b();alert(a);-----输出的是1
输出的是1阅读全文
0 0
- JavaScript变量提升(Hoisting)
- Javascript Hoisting( 变量提升)
- JavaScript变量提升-Hoisting
- Javascript变量提升(Hoisting)
- Javascript变量提升(Hoisting)
- javascript变量声明提升(hoisting)
- JavaScript中变量提升 Hoisting
- javascript变量声明提升(hoisting)
- javascript变量声明提升(hoisting)
- JavaScript中变量提升 Hoisting
- javascript变量声明提升(hoisting)
- JavaScript中变量提升 Hoisting
- JavaScript中变量提升------Hoisting
- javascript变量声明提升(hoisting)
- javascript变量声明提升(hoisting)
- javascript变量声明提升(hoisting)
- JavaScript中变量提升 Hoisting
- JavaScript中变量提升 Hoisting
- windows下 安装 rabbitMQ 及操作常用命令
- J
- vm两个linux虚拟机之间互传文件
- 记一次Spring aop的所遇到的问题
- Linux下用户组、文件权限详解
- Javascript Hoisting( 变量提升)
- 学习极客的mongoose+express的笔记(2)
- iOS 读取图片 exif 信息
- 上拉加载
- Thread.currentThread()与this的区别
- 栈
- cdq分治(bzoj 1176: [Balkan2007]Mokia && bzoj 2683: 简单题)
- C语言栈的使用
- guzzle/guzzle 日常使用