js的变量声明提前(小菜鸟的见解)

刚自学js,还有很多不懂。

下面是我的自己的理解。有错误的欢迎纠正!(*^__^*)

这个运行出来是undefind。但是下面在文本框中输入的可以运行出来。

原因是:

图1中alert(a);时在function和alert中间声明了一个a,但是没有赋值,所以undefined

时间: 2024-08-28 18:24:32

js的变量声明提前(小菜鸟的见解)的相关文章

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变量声明提前

题目如下:请写出下面代码2次alert分别输出什么结果? <script type="text/javascript"> var a = 1; var a; alert(typeof a); (function () { b = 'hello world'; var b; })(); alert( typeof b); </script> 我的答案是:1.undefined 2.undefined.然后leader让我们再仔细考虑一下问题答案.我对题目的分析:1

JavaScript 变量声明提前

<JavaScript权威指南>中指出:JavaScript变量在声明之前已经可用,JavaScript的这个特性被非正式的称为声明提前(hoisting),即JavaScript函数中声明的所有变量(但不涉及赋值)都被“提前”至函数的顶部.下面我们从实例中看看: 实例1: var aa = "test"; function myFunc(){ console.log('aa值为:'+aa); var aa = "TEST"; } myFunc(); 调

JS之变量声明

javascript的变量声明: 格式: var 变量名 = 数据; 声明变量要注意的事项: 1. 在javascript中声明变量是 使用var关键字声明的,javascript中的变量可以存储任意的数据类型数据. 2. javascript中变量数据类型是根据存储的值决定的,可以随时更改存储数据的类型. 3. 定义了多个同名的变量是,后定义的同名变量是覆盖前面定义的同名变量. 4. 声明变量的时候可以省略var关键字,但是不建议省略. javascript的数据类型: typeof 查看变量

let防止变量声明提前

let可以解决原来js中,一个函数中变量混乱的问题,因为以前var 定义的变量时, {}是不能限制变量作用域的. "use strict"; +function(){ var t=0;//用于计时的变量t console.log("建立连接,耗时0.3秒"); t+=0.3;//t=0.3; (function(){ //var t; console.log("查询数据,耗时0.8秒"); t+=0.8;//t=1.1; var err=true

关于js中变量声明和作用域的理解

1. var是声明一个变量:虽然声明了这个变量,但在存入值之前,它的初始值是 undefined:2.全局变量:拥有全局作用域,在js代码中的任何地方都是有定义的:3.局部变量:在函数内声明的变量只在函数内有定义,作用域是局部的,只在函数内有定义:4.全局作用域编写代码时可以不写var,但声明局部变量时必须使用var语句;5.在函数体内,局部变量的优先级高于同名的全局变量.如果局部变量和全局变量同名,那么全局变量会被局部变量所遮盖:但全局变量的值不会改变:6.作用域链查找规则:自上而下(一个或多

声明提前js变量

声明提前问题相关 js的变量声明语句无论出现在何处,都会先与其他代码首先被执行,使用var声明关键词声明变量的 作用于是当前的执行上下文,有可能是外围函数,或者,当变量声明在函数体之外时,则为全局变量 想一个未声明变量复制会隐式地转换为全局变量(它编程了库对象的一个属性)声明变量与未声明变量之间的区别为: 1,声明变量的作用范围限定在其执行的上下文环境中,未生名的变量总是全局的 2.声明变量在其他代码执行之前创建,未声明的变量在其赋值语句执行之前都是不存在的 3.声明变量是执行上下文(函数或者全

js常用函数、书写可读性的js、js变量声明...

1.Array类型函数 array.concat(item...) 函数功能:关联数组,实现数组相加功能,但并不影响原先数组,concat返回新数组. array.join(separator) 函数功能:将array中的每个元素用separator为分隔符构造成字符串,默认的separator是逗号,当然你可以自己指定separator 事实上join方法最常用的地方在字符串相加,用过js的人都知道js的字符串相加是特别慢且性能特别差的,把大量片段字符串放在一个数组中并用join方法连接比用+

js中变量的声明

大家都知道js中变量的声明是要提前的,以下有4个例子: 1.if(!"t" in window){ var t = 1; } alert(t);答案是undefined,为什么呢,就是因为变量声明提前了,所以t是在window对象里面的,但是没有走下面的判断,所以并没有赋值,答案就是undefine 2.var num = 100; function fn(){ var num = num + 1; return num; } falert(n());答案依然是NaN,因为在函数体内部