美文网首页
js变量声明

js变量声明

作者: Viewwei | 来源:发表于2020-10-21 19:00 被阅读0次

var声明作用域

var 操作符定义的变量会成为包含它的函数局部变量,如果在一个函数内定义var,那么这个变量的作用域就是在函数里面,函数退出的时候,变量会被销毁,不过如果在函数中省略var,那么这个变量就算是全局变量,var声明的变量可以用window访问到

```

  function test() {

    var message = "hi"

}

test()

console.log(message)  //出错

```

```

function test() {

   message = "hi"

}

test()

console.log(message)  //输出为hi

```

var 声明提升

```

function test() {

    console.log(age) //不出出错,而是显示undefined,变量得到提升

    age =26

}

test()

```

let声明

let 声明的变量是块作用域,所谓块作用域的描述就像是变量声明在函数内部,那么这个变量的作用域只在函数中,在函数在访问这个变量就会报错,let声明的变量也不存在变量提升。let声明的变量不会被window中访问到

let声明变量和var声明变量的区别

```

for(var i = 0;i <10; i++) {

    setTimeout(() => console.log(i),0)

}

```

代码输出的结果都是10

```

for(let i = 0;i <10; i++) {

setTimeout(() => console.log(i),0)

}

```

代码输出的结果都是1-10

解释原因:在var变量中,迭代变量保存的导致循环退出的值是5,在10次之后,所以的i都是同一个变量,因此输出都是同一个最终值,而let声明迭代变量的时候,javascript在后台会为每个迭代循环声明一个新的迭代变量,所以输出了1-10的值

const 变量

const修饰的变量和let一样,都是块级作用域,唯一不同的是const变量必须初始化,初始化之后不能够修改。const修饰的对象,可以添加属性,如果不想修改属性,可以使用

Object.freeze({})创建const对象,这样的对象是不能被修改的,哪怕是属性

声明风格和最佳实践

优先使用const>let>var

相关文章

  • js变量声明

    var声明作用域 var 操作符定义的变量会成为包含它的函数局部变量,如果在一个函数内定义var,那么这个变量的作...

  • 专题复习三、JS基础还记得么?

    写于2017.07.29 js声明变量方法 var a =1表示声明一个变量。用var声明的变量都存在声明提升,意...

  • JAVA与JS基础知识比对(一)

    js 变量 声明: var 变量名 赋值: 先声明,在赋值 声明之后直接赋值 以逗号隔开,给多个变量赋值 只声明,...

  • JS基础

    1. JS基础 1.1 声明变量 声明变量 同时声明多个变量 1.2一些方法 isNaN 是数字返回false不是...

  • 不使用var定义的变量

    js变量 JavaScript声明变量可以用var声明,也可以不用var声明,两种声明变量的方式有什么区别呢? 注...

  • JavaScript 大纲

    js 语法基础 JavaScript 介绍 js 输出 注释 变量,变量声明提升,全局变量,常量 7 大数据类型 ...

  • JavaScript语法

    JavaScript语法 一、JS变量 1.变量 以var声明变量为局部变量,不以var声明的变量为全局变量。 2...

  • 变量提升和函数提升

    JS不像C语言,C语言是先声明后使用,否则会报错。但JS中,有变量提升现象,可以先使用后声明。 JS存在变量提升,...

  • 变量

    变量声明 js 中变量声明时使用 var , let 或 const 其中之一进行修饰。虽然变量声明时可以不加修饰...

  • No.18 JavaScript变量

    一、变量声明 var age; // 声明一个 名称为age 的变量 var 是一个 JS关键字,用来声明变量(...

网友评论

      本文标题:js变量声明

      本文链接:https://www.haomeiwen.com/subject/uzvemktx.html