自动生成:这些全局变量是随着页面打开时而创建的,比如window、document、页面包含ID的元素,这些变量可以直接访问。
没有通过var声明的变量会自动注册为window的属性而称为全局变量。
通过var声明的变量,但是该变量的作用域或者执行上下问是windows时,也会被注册到Window对象中。代码如下:<script>varfoo="test"aerlt(window.foo)</script>
全局变量的有点和缺点:
优点:生命周期长,变量易共享,页面之间可以通过全局变量通信等。
缺点:污染全局变量,占用内存等。
因为变量的声明和赋值都是发生在input输入数据之前的,而当input输入数据后变量并没有被重新赋值,所以就还是空的。这种情况就不要用全局变量了,而应该在函数里实时获取input的输入值(也就是把var这行放到select2函数里面去)。
如果一定要用全局变量,那么就应该把input对象(而不是把它的value属性值)赋值给全局变量:
var $str1=d1
然后在函数里使用的时候要这样:
console.log($str1.value.length)