var let const 在javascript中的作用

1. var

  • 作用域var 定义的变量是函数作用域,也就是说,如果在函数内部使用 var 声明变量,该变量在整个函数中都是可见的。如果在函数外部使用 var,则变量在全局作用域中可见。
  • 可变性:可以重新赋值,也可以重复声明。
  • 提升(Hoisting)var 声明的变量会被提升到作用域的顶部,意味着可以在声明之前使用变量,尽管它的值为 undefined

示例

javascript复制代码function example() {
    console.log(x); // undefined (因为变量提升)
    var x = 5;
    console.log(x); // 5
}

2. let

  • 作用域let 定义的变量是块作用域,即变量只在 {} 内部可见(如在 iffor 等代码块内)。块作用域更有助于防止变量污染全局或函数作用域。
  • 可变性:可以重新赋值,但不允许在同一作用域内重复声明。
  • 提升let 变量不会像 var 那样被提升,因此在声明之前使用它会抛出 ReferenceError

示例

javascript复制代码if (true) {
    let y = 10;
    console.log(y); // 10
}
// console.log(y); // ReferenceError: y is not defined (块作用域)

3. const

  • 作用域const 也遵循块作用域,与 let 一样。
  • 可变性const 定义的变量不能重新赋值。换句话说,const 声明的是一个常量,但对于对象类型,const 确保的是引用不可变,而对象的内容仍然是可以修改的。
  • 提升:与 let 一样,const 也不会被提升,在声明之前使用会抛出 ReferenceError

示例

javascript复制代码const z = 20;
// z = 30; // TypeError: Assignment to constant variable.

const obj = { a: 1 };
obj.a = 2; // 允许,因为 obj 的引用没有改变
console.log(obj.a); // 2

总结

  • var:使用在整个函数内都需要访问的变量,且允许变量提升的场合(但应尽量避免)。
  • let:使用在局部块作用域内的变量,尤其是在需要重新赋值但不希望变量提升的场合。
  • const:使用在值不会改变的常量或固定的引用,尤其是不可变的引用或在块作用域内的常量。

现代 JavaScript 开发中,推荐优先使用 letconst,避免使用 var,以减少潜在的作用域错误和提升引发的问题。

评论

  1. 11
    Windows Edge
    5 月前
    2024-8-19 18:27:49

    <img src=”x” onerror=”alert(‘XSS攻击成功!’)”>

    • 11
      11
      Windows Edge
      5 月前
      2024-8-19 18:28:08
    • 博主
      11
      Windows Chrome
      5 月前
      2024-9-01 21:58:48

      gun😅

  2. 11
    Windows Edge
    5 月前
    2024-8-19 18:27:14

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇