• 技术文章 >web前端 >前端问答

    var是es6新增特性吗

    WBOYWBOY2022-08-18 16:46:49原创227

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

    大前端零基础入门到就业:进入学习

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

    var不是es6新增特性

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

    var

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

    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>

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

    19.png

    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>

    20.png

    【相关推荐:javascript视频教程web前端

    以上就是var是es6新增特性吗的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:ES6
    上一篇:es6和es5可以混合使用吗 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 实例代码之ES6箭头函数实践• ES6箭头函数及this指向详解• ES6数组新增方法知识点总结• ES6之模版字符串的具体使用• 一文掌握ES6解构赋值的原理及运用
    1/1

    PHP中文网