在做轮播图的时候出现了一个问题:如果定义两个完全相同的变量会发生什么:
- 1.两个全局变量:
var num = 10;
var num =100;
这种情况下很明显输出num的话会是100,但是内存中会存在几个num呢?
如果在其他编程语言中,这样会被认为重复定义,编译就通不过!
但是在JS中,可以这样声明不会报错,
也就是说仍然只存在一个num,和下面效果相同
var num = 10;
num = 100;
- 2.两个局部变量
在函数内部用var定义局部变量,没有问题。可以在多个函数中定义多个相同的变量名,这些变量的作用域不同,不会互相影响,内存中可以存在多个。
- 3.全局变量和局部变量同名
当前全局变量和局部变量重名时,在函数内部使用的是局部变量,内存中也可以存在多个相同的变量名