当前位置: 首页 > news >正文

网站后台如何更改昆明做网站做的好的公司有哪些

网站后台如何更改,昆明做网站做的好的公司有哪些,电子商务网站建设与管理考试,南京专业网站设计公司在 JavaScript 中,var、let 和 const 都用于声明变量,但它们有一些重要的区别,主要体现在 作用域、可变性和提升机制 等方面。 1. 作用域(Scope) var: var 声明的变量是 函数作用域,也就是说,它…

在 JavaScript 中,varletconst 都用于声明变量,但它们有一些重要的区别,主要体现在 作用域、可变性和提升机制 等方面。

1. 作用域(Scope)

  • var: var 声明的变量是 函数作用域,也就是说,它只在函数内部有效。如果 var 声明在函数外面,它的作用域就是全局的。如果 var 在一个代码块内(如 if 语句中)声明,它的作用域并不限于该代码块,而是整个函数或全局作用域。

if (true) { var a = 10; } 
console.log(a);// 10,因为a是函数作用域或者全局作用域
  • letconst: letconst 都是 块级作用域,这意味着它们的作用域限制在所在的代码块(如 {} 包裹的部分)内。

    if (true){ let b = 20; const c = 30; } 
    console.log(b); // ReferenceError: b is not defined 
    console.log(c); // ReferenceError: c is not defined

    这里,letconst 声明的变量只在 if 语句的代码块内部有效。

2. 变量提升(Hoisting)

  • var: var 声明的变量会 被提升到函数或全局作用域的顶部,但初始化不会被提升。所以,变量在声明之前仍然能访问到,但值为 undefined

    console.log(a); // undefined,因为声明被提升,但赋值没有 
    var a = 5;
  • letconst: letconst 声明的变量也会被提升,但 在初始化之前不能访问,如果访问它们会导致 ReferenceError。这就是所谓的 "暂时性死区"(Temporal Dead Zone, TDZ)

    console.log(b); // ReferenceError: Cannot access 'b' before initialization 
    let b = 10;

    这样,letconst 声明的变量不能在声明之前访问。

3. 可变性(Mutability)

  • varlet: 都声明的是 可变变量,即你可以在后续重新赋值。

    示例:

    var x = 10; x = 20; // 允许重新赋值 
    let y = 30; y = 40; // 也允许重新赋值
  • const: const 声明的是 常量,意味着你声明时必须给它赋值,并且之后不能再修改它的绑定(不能重新赋值)。但是,如果 const 绑定的是一个对象或数组,那么对象的内容是可以修改的(例如添加、删除属性或元素)。

    
    const z = 50; z = 60; // TypeError: Assignment to constant variable. 
    const obj = { a: 1 }; 
    obj.a = 2; // 这是合法的,修改对象的内容
    console.log(obj.a); // 2

    这里,const 防止了对变量的重新赋值,但并不阻止修改对象的内容。

4. 全局作用域中的 var 与 let/const

  • var: 如果你在全局作用域中使用 var 声明一个变量,它会成为全局对象(浏览器中的 window 或 Node.js 中的 global)的属性。

    示例:

    var globalVar = 'I am global'; 
    console.log(window.globalVar); // 'I am global' 在浏览器中
  • letconst: 如果你在全局作用域中使用 letconst,它们不会成为全局对象的属性。

    示例:

    let globalLet = 'I am block-scoped'; 
    console.log(window.globalLet); // undefined

总结对比

特性varletconst
作用域函数作用域块级作用域块级作用域
提升变量提升,但值为 undefined变量提升,但不能在初始化前使用变量提升,但不能在初始化前使用
可变性可重新赋值可重新赋值不能重新赋值(但对象内容可修改)
全局作用域行为成为全局对象的属性不会成为全局对象的属性不会成为全局对象的属性

选择使用

  • 如果你需要声明一个变量,并且后续可能会重新赋值,使用 let
  • 如果你需要一个常量(值不变),使用 const
  • 避免使用 var,因为它的作用域是函数级别的,容易导致意外的错误,尤其是在复杂的代码中。
http://www.yayakq.cn/news/916104/

相关文章:

  • wap网站开发公司wordpress怎么屏蔽国外IP
  • 在什么网站能找到做外贸的邮箱网站关键词怎么添加
  • 深圳坪山高级中学seo实战密码电子书
  • 网站建设需要哪些项目广告公司企业简介怎么写
  • 有关网站招标商务标书怎么做wordpress 编码
  • 在iis里面创建网站中国塑料商业网
  • 网络营销服务平台wordpress网站seo设置
  • 外贸推广用中文网站公司企业邮箱注册流程
  • 上海网站建设公司兴田德润优惠吗wordpress $post
  • 企业网站建设投标书免费seo视频教学
  • 网站做统计网络营销公司排名榜
  • 拼多多网站建设的目的4G访问wordpress
  • 什么网站可以请人做软件下载网站开发微信
  • 买卖链接网站北京网站优化培训
  • 网站地址搜索静态网站建设课程设计
  • logo免费设计网站xss网站怎么搭建
  • 义乌网站建设九免费域名注册工具
  • 装修网站怎么做推广wordpress化
  • 上市公司网站推广方案中文域名注册费用标准
  • unity3d转行网站开发服务器租用网站模版
  • 大连市平台网站江津网站建设怎么样
  • frontpage网站模板成都到西安火车时刻表查询
  • 做旅游海报的软件或是网站开网店怎么开
  • 做感恩网站的图片穹拓网站建设
  • 国家鼓励做网站的行业番禺做网站开发
  • 做一个京东网站怎么做网络营销推广活动
  • 省博物馆网站建设网站开发团队需配备什么岗位
  • python做爬虫和做网站seo搜索引擎优化报价
  • 服装搭配网站源码ps平面设计主要做什么
  • 软件开发和网站建设一样吗网络应用程序方案设计