返回顶部
首页 > 资讯 > 前端开发 > JavaScript >javascript使用var声明变量的问题怎么解决
  • 450
分享到

javascript使用var声明变量的问题怎么解决

2024-04-02 19:04:59 450人浏览 薄情痞子
摘要

这篇文章主要介绍了javascript使用var声明变量的问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript使用var声明变量的问题怎么解决文章都会

这篇文章主要介绍了javascript使用var声明变量的问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript使用var声明变量的问题怎么解决文章都会有所收获,下面我们一起来看看吧。

javascript使用var声明变量的问题怎么解决

声明变量的问题

  • 使用var声明变量(允许重复变量声明:导致数据被覆盖)

变量的提升

  • 怪异数据访问

  • 闭包问题

  • 在函数的变量会提升到最顶部

  • 在全局作用域的变量也会提升到最顶部

JavaScript中的var声明变量的缺陷

  • 未声明却可以使用(var声明的变量会预编译或者说是变量提示),这不符合逻辑。

  • 同一个变量可以被多次声明,但是严谨来说,一个变量被声明一次之后,后面便只能对它修改而不是声明。也不符合逻辑。

  • for循环中的循环参数可以在循环外使用(for循环被污染),而超出了最初主要控制循环的作用。不符合逻辑。

  • 没有块级作用域。

我们来举例看一下

//首先判断生成一个随机数当随机数小于0.5时声明a赋值为‘abc’
//然后输出a

if (Math.random() < 0.5){
	var a = 'abc';
	console.log(a);
}
//如果不是那么输出a
else {
	console.log(a)
}

console.log(a);

这里就有一个很严重的问题让我们来读一下:

首先判断生成一个随机数当随机数小于0.5时声明a且输出a

然后如果不小于0.5也输出a

那么这个a实际上是不存在的因为遇到了变量提升问题导致全局作用域有了一个a,这样虽然能读到但是因为这个变量提升就导致全局作用域被污染了。

在正常看来这似乎没有问题但是将这串代码放在其他任何语言上写出类似的代码他必定会报错同时也因为这个问题导致他在一定程度上对大型应用的吃力。

让我们再来看看闭包问题:

//选中div
var div = document.getElementByTd('div');
//我这里创建10个按钮并添加进代码里

for (var i = 1; 1 < 10; i ++){
	var btn = document.createElement('button');
	btn.innerhtml = '按钮' + i;
	div.appendChild(btn);
	//添加点击事件点击按钮时输出对应的i
	btn.onclick = function () {
		console.log(i);
	}
}
//但是当点击输出时所有的按钮都为11
//原因是当在for声明变量i时遇到了变量提升就导致了来来回回更改的就只有这一个i
//而当我们点击时for早已循环完所以循环完成时i = 11;就输出也是11了
//
//一般我们的解决办法是将点击事件上写一个立即执行函数执行完删除方可正常运行

全局变量挂载到全局对象:全局对象成员污染问题

var abc = "123"
console.log(abc);
//可以正常输出对吧,这就导致了一个问题
//我可以将abc挂载到window上如果说我要写很多的代码那就会导致全局变量污染

//然后我给console赋值
var console = "abc";
console.log(console);
//然后再输出console会报错
//因为我对window的console进行了覆盖所以会报错

这就是原来的js所遇到的各种问题和不方便的地方

关于“javascript使用var声明变量的问题怎么解决”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“javascript使用var声明变量的问题怎么解决”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网JavaScript频道。

--结束END--

本文标题: javascript使用var声明变量的问题怎么解决

本文链接: https://www.lsjlt.com/news/98544.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • javascript使用var声明变量的问题怎么解决
    这篇文章主要介绍了javascript使用var声明变量的问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript使用var声明变量的问题怎么解决文章都会...
    99+
    2024-04-02
  • JavaScript变量声明的var、let、const详解
    目录前言内容JavaScript的变量声明var的变量声明变量声明在函数作用域中变量重复声明变量声明提升怪异危险的varlet和const的变量声明块级作用域不可重复声明暂时性死区使...
    99+
    2024-04-02
  • javascript变量声明是否必须用var
    这篇文章将为大家详细讲解有关javascript变量声明是否必须用var,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。javascript中,变量声明不是必须用var,还...
    99+
    2024-04-02
  • javascript 变量声明 var,let,const 的区别
    目录作用域(Scope)是什么var 声明提升(Hoisting)let 声明const 声明作用域(Scope)是什么 作用域是程序的执行环境,它包含在当前位置可访问的变量和函数。...
    99+
    2024-04-02
  • javascript声明变量不用var的方法有哪些
    本篇内容主要讲解“javascript声明变量不用var的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript声明变量不用var的方法有...
    99+
    2024-04-02
  • javascript变量声明var,let,const的区别是什么
    本文小编为大家详细介绍“javascript变量声明var,let,const的区别是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“javascript变量声明var,let,const的区别是什么”文章能帮助大家解决疑惑,下面跟着小...
    99+
    2023-06-30
  • JavaScript变量怎么声明
    本篇内容主要讲解“JavaScript变量怎么声明”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript变量怎么声明”吧!   &nbs...
    99+
    2024-04-02
  • es6中怎么用关键字var声明变量
    这篇文章将为大家详细讲解有关es6中怎么用关键字var声明变量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。用关键字var声明变量var a ;  /...
    99+
    2024-04-02
  • JavaScript声明变量的这四兄弟(var、let、function、const)
    四兄弟的背景 在一个名为编程语言的村庄里,有不同姓氏的村民。例如Java、Python、Golang、JavaScript等姓氏,而接下来要介绍的就是JavaScript这个姓氏的一...
    99+
    2023-02-13
    JavaScript声明变量 js声明变量
  • JavaScript中的变量声明怎么理解
    这篇文章的内容主要围绕JavaScript中的变量声明怎么理解进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!变量ECMAScript中,变量可以保存...
    99+
    2023-06-29
  • 怎么重复声明JavaScript变量
    本篇内容介绍了“怎么重复声明JavaScript变量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 重复...
    99+
    2024-04-02
  • JavaScript如何使用const声明变量
    这篇文章主要介绍JavaScript如何使用const声明变量,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!使用const声明变量使用 var 和 let 声明的变量在脚本代码的运行...
    99+
    2024-04-02
  • JavaScript如何使用let声明变量
    这篇文章将为大家详细讲解有关JavaScript如何使用let声明变量,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用let声明变量使用 let 可以声明块级别作用域的...
    99+
    2024-04-02
  • JavaScript中的变量怎么声明和赋值
    这篇文章主要介绍“JavaScript中的变量怎么声明和赋值”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript中的变量怎么声明和赋值”文章能帮助大家...
    99+
    2024-04-02
  • CSS变量的使用问题怎么解决
    这篇文章主要讲解了“CSS变量的使用问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS变量的使用问题怎么解决”吧!1. 小心 !importa...
    99+
    2024-04-02
  • JavaScript变量能在声明之前使用吗
    这篇文章主要介绍了JavaScript变量能在声明之前使用吗的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript变量能在声明之前使用吗文章都会有所收获,下面我们一...
    99+
    2024-04-02
  • sql中怎么使用declare声明变量
    在SQL中,可以使用DECLARE语句来声明变量。DECLARE语句用于在存储过程、函数或触发器中声明变量。DECLARE语句的语法...
    99+
    2023-08-08
    sql declare
  • Perl中怎么声明和使用变量
    在Perl中,可以使用my关键字来声明变量。变量名以$符号开头,可以是任意的字母、数字和下划线的组合。例如: my $name = ...
    99+
    2024-03-05
    Perl
  • JavaScript之怎么使用const声明常量
    这篇文章主要介绍“JavaScript之怎么使用const声明常量”,在日常操作中,相信很多人在JavaScript之怎么使用const声明常量问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2024-04-02
  • 如何解决JS中变量的声明,举起与初始化的问题
    这篇文章主要讲解了“如何解决JS中变量的声明,举起与初始化的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决JS中变量的声明,举起与初始化的问题”...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作