200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > javascript中加var和不加var的区别 你真的懂吗【javascript】

javascript中加var和不加var的区别 你真的懂吗【javascript】

时间:2018-09-05 10:13:31

相关推荐

javascript中加var和不加var的区别 你真的懂吗【javascript】

web前端|js教程

javascript中var,javascript_var

web前端-js教程

Javascript是遵循ECMAScript标准下的一个产物,自然ECMAScript的标准其要遵循。

html小游戏源码免费,vscode自定义,阿里ubuntu镜像,tomcat请求体大小,sqlite数据库客户端免费的,纯白爬虫,微信小程序php 后端,泉州seo推广营销引流,新闻网站模版之家,discuz x3.2模板安装教程lzw

先来看下var关键字的定义和用法

易语言源码网盘,vscode终端回退到根目录,ubuntu源码nginx,tomcat编码格式设置,县城爬虫店,php工作经历怎么写,连云港seo推广价格如何lzw

var 语句用于声明变量。

多风格微信投票系统源码,ubuntu 官方衍生版,tomcat9中文乱码,爬虫从哪取货,网站开发不用PHP用什么,seo冠军秀lzw

JavaScript 变量的创建也叫作”声明”一变量:

var carName;

变量声明后,变量为空 (没有值)。

为变量复制,操作如下:

carName = "Volvo";

声明变量时,你同样可以为变量赋值:

var carName = "Volvo";

语法

var varname = value;

参数值

大家都看了很多文章,都说避免隐式声明全局变量,就是说声明变量前必须加’var’,那加了’var’和不加’var’到底有啥区别呢?

先来看一段代码

var a = aa;alert(a); //弹出 aaalert(window.a)//弹出aa

明白了吧,你声明一个全局变量其实是给’window’对象增加了一个属性,下面一段代码有相同效果

a = aa;alert(a); //弹出 aaalert(window.a)//弹出aa

那”var a = ‘aa’ ” 和 “a = ‘aa’ ” 都是全局变量,有啥区别了? 看下面两段段代码

var a = aa;delete window.a; // false a = aa;delete window.a; // true

都是为’window’对象增加了属性,一个可以删除,一个不能删除。但是加上’var’就可以作用域相关了,不加’var’始终都是在为’window’对象动态添加属性,以下代码为证

var test = function(){ a = aa;}test();alert(window.a);//弹出aa

由于window对象是全局对象,因此默认可以不加,下面这段同样效果

var test = function(){ a = aa;}test();alert(a);//弹出aa

说到这,认真思考的同学现在必然有个疑问, 为啥隐式声明的全局变量可以删除,显式声明的全局变量就无法删除?

原因是”delete 不可以删除那些可配置性为false的属性” ,某些内置对象的属性是不可配置的,比如通过变量声明或者函数声明创建的全局对象的属性,以下代码为证

delete Object.prototype; // false 不可删除,该属性是不可配置的var a = aa;delete window.a;//false 不可删除,该属性是不可配置的function test(){};delete window.test;//false 不可删除,该属性是不可配置的

那这样不就明白了,通过’var’声明的全局变量,其实际上是为’window’对象增加了一个不可配置的属性, 而不加’var’声明的全局变量,其实际上是为’window’对象增加了一个可以配置的属性。

注意了,以上使用window的地方,window都可以用this代替,如:

var test = function(){ a = aa;}test();alert(this.a);//弹出aa

至于原因,请查看鄙人之前写的文章 ‘this,this,再次讨论javascript中的this,超全面’

下面拉出javascript中的var关键字,给大家单独讲解。

我们知道定义变量的时候,我们需要用到Var关键字,使用Var关键字时,我们需要注意他的使用方法:

下面几个列子,充分说明了Var在使用和不使用、全局变量和局部变量定义时,有不同的执行结果。

var var01 = 1;function funtest() { document.write(var01); var var01 = 0;}

结果为:undefined

var var01 = 1;function funtest() { document.write(var01); var01 = 0;}

结果为:1

var01 = 1;function funtest() { document.write(var01); var var01 = 0;}

结果为:undefined

var01 = 1;function funtest() { document.write(var01); var01 = 0;}

结果为:1

看到这里对javascript中的var你了解多少,相信大家通过本文学习多多少少都会有点收获的吧。欲了解更多关于javascript var相关知识请持续关注本站,谢谢!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。