时间:2021-05-26
Javascript是遵循ECMAScript标准下的一个产物,自然ECMAScript的标准其要遵循。
先来看下var关键字的定义和用法
var 语句用于声明变量。
JavaScript 变量的创建也叫作"声明"一变量:
复制代码 代码如下:
var carName;
变量声明后,变量为空 (没有值)。
为变量复制,操作如下:
复制代码 代码如下:
carName = "Volvo";
声明变量时,你同样可以为变量赋值:
复制代码 代码如下:
var carName = "Volvo";
语法
复制代码 代码如下:
var varname = value;
参数值
参数 描述 varname 必须。指定变量名。
变量名可以包含字母,数字,下划线和美元符号。
大家都看了很多文章,都说避免隐式声明全局变量,就是说声明变量前必须加'var',那加了'var'和不加'var'到底有啥区别呢?
先来看一段代码
明白了吧,你声明一个全局变量其实是给'window'对象增加了一个属性,下面一段代码有相同效果
那"var a = 'aa' " 和 "a = 'aa' " 都是全局变量,有啥区别了? 看下面两段段代码
都是为'window'对象增加了属性,一个可以删除,一个不能删除。但是加上'var'就可以作用域相关了,不加'var'始终都是在为'window'对象动态添加属性,以下代码为证
由于window对象是全局对象,因此默认可以不加,下面这段同样效果
说到这,认真思考的同学现在必然有个疑问, 为啥隐式声明的全局变量可以删除,显式声明的全局变量就无法删除?
原因是"delete 不可以删除那些可配置性为false的属性" ,某些内置对象的属性是不可配置的,比如通过变量声明或者函数声明创建的全局对象的属性,以下代码为证
那这样不就明白了,通过'var'声明的全局变量,其实际上是为'window'对象增加了一个不可配置的属性, 而不加'var'声明的全局变量,其实际上是为'window'对象增加了一个可以配置的属性。
注意了,以上使用window的地方,window都可以用this代替,如:
至于原因,请查看鄙人之前写的文章 'this,this,再次讨论javascript中的this,超全面'
下面拉出javascript中的var关键字,给大家单独讲解。
我们知道定义变量的时候,我们需要用到Var关键字,使用Var关键字时,我们需要注意他的使用方法:
下面几个列子,充分说明了Var在使用和不使用、全局变量和局部变量定义时,有不同的执行结果。
结果为:undefined
结果为:1
结果为:undefined
结果为:1
看到这里对javascript中的var你了解多少,相信大家通过本文学习多多少少都会有点收获的吧。欲了解更多关于javascript var相关知识请持续关注本站,谢谢!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
JavaScript:单行注释用//呵呵呵呵;多行注释用javascript中区别大小写,定义变量使用关键字var,语法如下:var变量名
前段时间回答了一个关于定义变量时使用关键字var与否的区别,总结回顾一下。1.在函数作用域内加var定义的变量是局部变量,不加var定义的就成了全局变量。使用v
下面通过代码给大家介绍JavaScript中var、let、const区别,具体代码如下所述://1.var定义的变量可以修改,如果不初始化会输出undefin
在JavaScript中有三种声明变量的方式:var、let、const。下文给大家介绍js中三种定义变量的方式const,var,let的区别。1.const
一、let和var区别1.关于变量提升,var能变量提升,let不能//关于var如下所示console.log(a);//输出undefined,此时就是变量