var x = 30;function testalertx;var x = 10;alertx;x = 20;function x ;alertx;test;A3010function x Bundefined1020C function x1020 D 301020解释一下
答案是C. function x(){},10,20
在JavaScript中,变量声明会被提升到函数的顶部,但是变量赋值不会被提升。
在函数test中,首先会声明一个局部变量x,并将其提升到函数的顶部,然后会在函数内部赋值为10。
在第一个alert语句中,会输出局部变量x的值,由于变量赋值不会被提升,所以输出的是undefined。
在第二个alert语句中,会输出局部变量x的值,此时x已经被赋值为10,所以输出的是10。
在第三个alert语句中,会输出全局变量x的值,由于全局变量x的值一直为30,所以输出的是30。
原文地址: http://www.cveoy.top/t/topic/h09x 著作权归作者所有。请勿转载和采集!