js中如何定义全局变量?

JavaScript018

js中如何定义全局变量?,第1张

JavaScript声明全局变量三种方式的异同\x0d\x0a\x0d\x0aJavaScript中声明变量格式:var(关键字)+变量名(标识符)。\x0d\x0a方式1\x0d\x0avar test\x0d\x0avar test = 5\x0d\x0a\x0d\x0a需注意的是该句不能包含在function内,否则是局部变量。这是第一种方式声明全局变量。\x0d\x0a \x0d\x0a方式2\x0d\x0atest = 5\x0d\x0a\x0d\x0a没有使用var,直接给标识符test赋值,这样会隐式的声明了全局变量test。即使该语句是在一个function内,当该function被执行后test变成了全局变量。\x0d\x0a \x0d\x0a方式3\x0d\x0awindow.test\x0d\x0awindow.test = 5\x0d\x0a\x0d\x0a这种方式经常被用到一个匿名函数执行后将一些函数公开到全局。 如JQuery1.5中最末一句\x0d\x0awindow.jQuery = window.$ = jQuery

javascript中全局变量的表现方式有三种:

自动生成:这些全局变量是随着页面打开时而创建的,比如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)