在简单的一次尝试中发现了问题,上图:
图一:

图二:

这种情况发生的原因是什么呢?

有var的是已声明变量,没有var的是未声明变量。在MND的var词条中有这样的描述:
将赋值给未声明变量的值在执行赋值时将其隐式地创建为全局变量(它将成为全局对象的属性)。声明和未声明变量之间的差异是:

  1. 声明变量的作用域限制在其声明位置的上下文中,而非声明变量总是全局的。
  2. 声明变量在任何代码执行前创建,而非声明变量只有在执行赋值操作的时候才会被创建。
  3. 声明变量是它所在上下文环境的不可配置属性,非声明变量是可配置的(如非声明变量可以被删除)。

我是否可以这样理解:未声明变量,即隐含全局变量,严格来说不是真正的变量,而是全局对象的属性。已声明变量是真正的变量,无法使用this访问或者删除。

再用一个例子验证我的想法:

delete方法可以删除对象的属性。

使用var声明的a变量无法删除,而b删除成功。

js 声明——有无var的区别相关推荐

  1. 【js】js中const,var,let区别

    在node.js使用例子中,第一次看到const的声明,查询了一下,可以看得出来: http://www.cnblogs.com/ksl666/p/5944718.html 参考 主要内容是:js中三 ...

  2. js中const,var,let区别与用法

    原文链接:https://blog.csdn.net/qq_36784628/article/details/80966826 js中三种定义变量的方式const, var, let的区别. 1. c ...

  3. js中const,var,let区别

    1.const定义的变量不可以修改,而且必须初始化. 1 const b = 2;//正确 2 // const b;//错误,必须初始化 3 console.log('函数外const定义b:' + ...

  4. js const 和 var 的区别

    const 其作用域和let一样,都是块作用域的,并且呢,如果const变量是基本类型值,则值不可变,如果值为引用类型数据结构,那么其引用的变量不可变,当然啦,const初始化的时候必须要赋值.不允许 ...

  5. JS中 let 和var的区别

    JS中let和var 的区别 简单介绍let var的常见变量提升 ES6可以用let定义块级作用域变量 let配合for循环的独特应用 let没有变量提升与暂时性死区 let变量不能重复声明 简单介 ...

  6. 在Javascript中 声明时用var与不用var的区别,== 和 ===的区别

    今天,被问到两个JS问题,当时没回答到重点,问题虽然看起来简单,但是细节却马虎不得,在此做下记录: 1. 在Javascript中 声明时用"var"与不用"var&qu ...

  7. uniapp 获取到js文件var一个变量怎么获取到这个变量值_浅析Js中const,let,var的区别及作用域...

    理解:let变量的作用域只能在当前函数中 js中const,let,var的区别及作用域_lianzhang861的博客-CSDN博客​blog.csdn.net 全局作用域中,用 const 和 l ...

  8. JS基础篇--函数声明与定义,作用域,函数声明与表达式的区别

    Scoping & Hoisting 例: var a = 1;function foo() {if (!a) {var a = 2;}alert(a); };foo(); 上面这段代码在运行 ...

  9. 【JS里面使用var声明变量存在的三个问题】

    1.允许重复声明,导致变量被覆盖.看如下代码: var a = 1; function prinf(){console.log(a); }var a = 2;prinf(); 结果输出: 这里假设你v ...

最新文章

  1. npjsba-2018-用肠道微生物模型指导个性化膳食缓解局部性肠炎
  2. linux 查看san链路状态,linux系统运行状态检查
  3. springboot: ajax异步提交表单
  4. 【转】最小编辑距离 算法原理
  5. 二十四、数据挖掘时序模式
  6. ndarray python 映射_在Matlab的delsq演示中,用numpy方法对向量映射进行ndarray处理?...
  7. 两步路轨迹文件位置_最新Uber ATG的轨迹预测方法LiRaNet介绍
  8. vue element-ui-tree样式总结
  9. [CF1095F]Make It Connected
  10. 电脑ping服务器显示传输失败,Win10系统ping时出现传输失败常见故障解决办法
  11. C++最小函数模板demo
  12. 2015.10.7第一篇
  13. POJ-3714 Raid 平面最近点对
  14. 教程|Word/WPS永久更改默认背景颜色
  15. KNN代码学习:将iris.csv处理成bunch格式
  16. CPU 和 GPU - 异构计算的演进与发展
  17. 琵琶行 (白居易诗作)
  18. 矩阵论-线性空间与线性映射
  19. 怎么用python学习网站开发_2018年最好用的5个python网站开发框架
  20. javabean/Listjavabean与map/Listmap互相转换

热门文章

  1. C语言遥控器程序,单片机学习型遥控器程序详解(完整版)
  2. LATEX教程第四讲——那些不得不说的宏包(下)
  3. 用卷积神经网络(CNN)识别文字
  4. 抖音SEO优化:最详细抖音视频SEO教程
  5. 阿里云对象存储(oos)
  6. ERROR 2002 (HY000): Cant connect to local MySQL server through socket的解决方法
  7. 天池大数据比赛,菜鸟仓库比赛,御膳房操作
  8. android逆向学习路线
  9. FI-盘盈盘亏借贷科目
  10. 小白如何快速从0基础入门平面设计