您现在的位置是:群英 > 开发技术 > web开发
var的特性是什么?是es6新增特性吗?
Admin发表于 2022-09-08 18:02:19599 次浏览
相信很多人对“var的特性是什么?是es6新增特性吗?”都不太了解,下面群英小编为你详细解释一下这个问题,希望对你有一定的帮助




var不是es6新增的特性;使用var关键字可以声明一个变量,声明的变量既是全局变量也是顶层变量,可以为其初始化赋值也可以不赋值,初始化赋值其可以是任意类型,不赋值是其为默认值。

如何快速入门VUE3.0:进入学习

本教程操作环境:windows10系统、ECMAScript 6.0版本、Dell G3电脑。

var不是es6新增特性

使用var关键字可以声明一个变量,可以为其初始化赋值也可以不赋值,初始化赋值其可以是任意类型,不赋值是其为默认值undefined,var声明的一般为全局作用域,并添加为window的属性(函数里边声明的除外其为函数作用域)。

var

  • 用var声明的变量既是全局变量也是顶层变量(在浏览器环境顶层对象指的是window对象,在node指的是global对象)

  • 使用var生命的变量存在变量提升的情况

  • 使用var能够对一个变量进行多次声明,后声明的变量会覆盖前面的变量声明

  • 在函数中使用var声明变量的时候,该变量是局部的;如果在函数内不使用var,改变量是全局的

与之相比的是let,let是es6新增的特性

let

  • 是es6新增的命令,用于声明变量

  • 用法类似于var,但是所声明的变量只在let命令所在的代码块内有效,不存在变量提升;只要块级作用域内存在let命令,这个区域就不再受外部影响

  • 使用let声明变量前,该变量都不可用,也就是大家常说的暂时性死区(let不允许在相同作用域中重复声明,因此我们不能在函数内部重新声明参数)

var 声明变量

<script>
/*
*1.使用var 声明变量,可以保存任意数据类型的值,
* Undefined、Null、Number、String、Symbol、Boolean、Object 7种类型
*2.在同一代码块位置:
* var userName; userName="marshal" 
* var userName="marshal"  是完全等价有效的
* var 可以以逗号分隔,定义多个变量,分号结束
* var userName,userAge,userAddress;
*/
var userName="marshal";//var userName;userName="marshal";
console.log(userName);
</script>

用开发者工具查看如下图:

var 作用域说明

作用域:在运行时,代码区域中变量、对象、函数及其他资源访问的可见性。JavaScript分为两种类型,全局和局部。与Script 标签同级,可理解为全局,在浏览器中这些称为windows对象,所以使用var 定义的全局变量、函数都是window对象的属性和方法。局部是定义在{}花括号内,如函数内部,定义在局部作用域,一般来说函数外部是不能访问的,但可以通过闭包方式去解决(后续再讲)。

<script>
/* 
* 1.定义函数localVariable
* 2.在函数内部使用var 声明变量userName,并设置值为marshal
* 
*/
function localVariable(){
var userName="marshal";
console.log("函数内部访问"+userName);//输出函数内部访问marshal
}
localVariable();
console.log("函数外部访问"+userName);  //报错:UncaughtReferenceError: userName is not defined
</script>

函数localVariable()调用后,内函数内部使用var 声明的变量、对象随之销毁,所以报错:UncaughtReferenceError: userName is not defined

如果在函数内部将var 省略,则为全局变量,示例代码如下:

<script>
/* 
* 1.定义函数localVariable
* 2.在函数内部省去var关键字
* 3.注不建议省去var 关键字,局部的全局变量很难维护,容易埋坑
*/
function localVariable(){
userName="marshal";
console.log("函数内部访问"+userName);
}
localVariable();//函数调用后,userName变为全局变量,可使用window对象访问。
console.log("函数外部访问"+window.userName);
</script>



到此这篇关于“var的特性是什么?是es6新增特性吗?”的文章就介绍到这了,感谢各位的阅读,更多相关var的特性是什么?是es6新增特性吗?内容,欢迎关注群英网络资讯频道,小编将为大家输出更多高质量的实用文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

标签: ES6
相关信息推荐
2022-07-26 17:38:03 
摘要:PHP如何使用xlswriter进行大数据的导入导出?下面本篇文章给大家介绍一下PHP大数据xlswriter导入导出(最优数据化)的方法,希望对大家有所帮助!
2021-11-24 17:53:35 
摘要:这篇文章给大家分享的是常用的python字符串方法。小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。
2022-01-22 17:57:12 
摘要:这篇文章我们来了解Java的compareto方法的相关内容,compareto方法可以实现Number对象与方法的参数的比较,小编觉得挺实用的,因此分享给大家做个参考,文中的示例代码介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。
云活动
推荐内容
热门关键词
热门信息
群英网络助力开启安全的云计算之旅
立即注册,领取新人大礼包
  • 联系我们
  • 24小时售后:4006784567
  • 24小时TEL :0668-2555666
  • 售前咨询TEL:400-678-4567

  • 官方微信

    官方微信
Copyright  ©  QY  Network  Company  Ltd. All  Rights  Reserved. 2003-2019  群英网络  版权所有   茂名市群英网络有限公司
增值电信经营许可证 : B1.B2-20140078   粤ICP备09006778号
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
微信公众号
返回顶部
返回顶部 返回顶部