var声明提前 undefined

1、同一代码块内,所有var声明都提前;

2、var 变量的初始化不提前,按顺序执行;

3、"undefined"和undefined都存在于window中;

4、if("undefined")真,if(undefined)假;

5、a存在于window中时,"a"也存在window中;

6、function(){a=2;} 函数内不用var声明而初始化变量,相当于在函数父作用域创建。

7、使用未声明的变量,会报错,undefined,function(){a;} 会报错;使用声明但未初始化的变量,会以undefined展示。

时间: 2024-08-27 14:43:12

var声明提前 undefined的相关文章

[转] 函数声明和函数表达式——函数声明的声明提前

定义函数的方法 定义函数的方法主要有三种: 函数声明(Function Declaration) 函数表达式Function Expression) new Function构造函数 其中,经常使用的是函数声明和函数表达式的函数定义方法,这两种方法有着很微妙的区别和联系,而且这两种方法的使用也容易混淆,所以这篇文章主要总结下这两种函数定义方法的相关知识点,当然本文的主题依然是关于函数提前的. 函数声明的典型格式: function functionName(arg1, arg2, ...){ <

函数声明和函数表达式——函数声明的声明提前

写在前面的那些不得不说的废话 前两天班级聚会,除了吃喝玩乐就是睡觉扯淡,甚是喜悦,真是独乐乐不如众乐乐啊. PS:毕业的或即将毕业的有时间能聚就聚吧,毕了业以后属于自己的时间能聚到一块儿可就少太多了. 现在有点时间来看点东西总结些东西了,又因为前段时间片片断断地看了看JavaScript的函数部分,所以抽时间总结下函数的相关部分,当然,里面有些部分都是自己的理解,如果有理解的不对的地方还请小伙伴们不吝指出. 这一节我结合自己的理解和小伙伴们聊一下函数声明的声明提前. 注:有的地方也叫函数声明提升

JS的作用域和声明提前

首先介绍下Javascript的函数作用域的概念,然后了解下什么是作用域和声明提前,最后通过一个例子剖析Javascript的作用域链. 1.变量的作用域 稍微有些编程背景的都知道,变量的作用域分为两种: 全局变量 和 局部变量 . Javascript是一门 弱类型语言 .所有的变量声明都是通过var来接收,如 var num = 1; var str = “string”; var flag = true; 看似是一个非常省事的机制,但是也有让人头疼的时候,一些隐式的类型转换经常会把搞晕.先

js中变量声明提前

只要是写过点JS代码,很简单一个var 就完事了.那对于JS编译器背后它又发生了什么呢?那就一步步通过代码来讲起. x = 1; alert(x); var y = function() { alert(x); var x = 2; alert(x); } y(); 上面的代码也会你答对了它会分别输出:1,undefined,2.对于我来说,第一反应它会输出:1,1,2.为什么第二个会输出undefined?在上面我明确定义了一个全局变量x,为何找不到? 那是因为:js编译器在执行这个y函数的时

javascript篇-----函数作用域,函数作用域链和声明提前

在一些类似C语言的编程语言中,花括号内的每一段代码都具有各自的作用域,而且变量在声明它们的代码段之外是不可见的(也就是我们不能在代码段外直接访问代码段内声明的变量),我们称之为块级作用域,然而,不同于这类型的编程语言,javascript是没有块级作用域.取而代之的,javascript使用的是块级作用域:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的. 在如下的所示的代码中,在不同位置定义了变量 i . j 和 k ,它们都在同一个作用域内——这三个变量在函数体内均是有定义

javascript的函数作用域及声明提前

废话不说:先来段代码: var scope='global';function test(){    alert(scope);        // 输出undefine:而不是global    var scope='local';      alert(scope);        // 输出local}test(); 脑算下:你可能会认为第一alert会输出global: 但是事实上第一个alert输出的是undefined: 这是怎么回事呢? 要探讨这个问题首先要解释下两个概念: 1:函

javascript中函数作用域和声明提前

javascript不像java等其他强类型语句,没有块级作用域(括号内的代码都有自己的作用域,变量在声明它们的代码段之外不可见)一说,但有自己的独特地方,即函数作用域. 函数作用域:变量在声明它们的函数体内以及这个函数体的任意内部函数体内是有定义的. 如下所示代码,在不同位置定义了变量i.j和k,它们都在同一个作用域内,即在函数体内均是有定义的. function test(){ var i=0; //i在整个函数体内均有定义 if(true){ var j=0; //j在整个函数体内均有定义

【翻译】JavaScript中的作用域和声明提前

原文:http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html ===翻译开始=== 你知道下面的JavaScript脚本执行结果是什么吗? 1 var foo=1; 2 function bar(){ 3 if(!foo){ 4 var foo=10; 5 } 6 alert(foo); 7 } 8 bar(); 如果你对弹出的结果是"10"感到惊讶的话,那么下面这段脚本会让你晕头转向的: 1 var a=1

【JavaScript】4、执行环境、变量对象与声明提前

这段时间一直在看一些关于JavaScript的书,看到不明白的地方就满世界搜解答,结果今天晚上在搜索一个奇怪的语法的时候不小心点开一道面试题,是一道考察作用域的十年老题,于是我试着做了一下,果断被坑,结束后看解析,看得也不是很明白,于是赶紧回去看基础书,结果发现以前很多自己一眼扫过的知识点自己完全没有掌握,瞬间后悔万分,所以趁势赶紧重新学一下,同时把这些这些点记录下来. 原题是这样的: var tt = 'aa'; function test(){ alert(tt); var tt = 'dd