01JavaScript面试系列_JavaScript中定义一个变量,没有赋值时,默认为undefined

一、      看下列代码输出为何?解释原因。

a)     原题:

1.    var a;   //JavaScript中定义一个变量,没有赋值时,默认为undefined

2.    alert(typeof a); // undefined

3.    alert(b); // 报错,因为b没有定义。所有,在浏览器的控制台中会报 b is not defined

解读:这个题的考察点就是:JavaScript中定义一个变量(var a;),没有赋值时,默认为undefined;不定义变量(变量b)时没法读取变量的值。

b)     把上代码的进行变化(把第一行和第二行调换一下):

1.    alert(typeof a); // undefined

2.    var a;   //JavaScript中定义(声明)一个变量,会做变量的声明提升。即上面这句话会提升到最上面,当然没有赋值时,默认为undefined

3.    alert(b); // 报错,因为b没有定义。所以,在浏览器的控制台中会报 b is not defined

解读:我们发现把原题中的第一行和第二行代码调换位置后,结果一样,这就是JavaScript中变量声明提升:JavaScript中定义(声明)一个变量,会做变量的声明提升(只对声明提升,而不提升赋值),即这三行代码经过预编译后,依然和原题的代码一样,当然,针对变量声明提升,后面还有几个面试题会给大家详解。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值