美文网首页
JavaScript基础学习(八)-变量的声明

JavaScript基础学习(八)-变量的声明

作者: 为你真心 | 来源:发表于2020-11-12 15:53 被阅读0次

var let const声明变量

var

变量foo用var声明,会发生变量提升,即脚本开始运行时,变量foo已经存在了,但是没有值,所以会输出undefined

// var 的情况
console.log(foo); // 输出undefined
var foo = 2;

变量提升:当栈内存(作用域)形成,js代码自上而下执行之前,浏览器首先会把所有带有“var”和“function”关键词的进行提前声明或者定义,这种处理机制叫做变量声明

//声明(declare): 
var a;(默认值undefined)

//定义(defined):  
a=12;(定义其实就是赋值操作)

变量提升阶段

  • 带“var”的只声明未定义
  • 带“function”的声明和定义(赋值)都完成了

let

变量bar用let命令声明,不会发生变量提升,这表示在声明它之前,变量bar是不存在的,这时如果用到它就会抛出一个错误

// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;

ES6在附录B里规定,浏览器有自己的行为方式

  • 允许在块级作用域内声明函数
  • 函数声明类似于var,即会提升到全局作用域或函数作用域的头部
  • 同时,函数声明还会提升到所在的块级作用域的函数声明当中
    注意:上面的三条规则只对ES6的浏览器的实现有效,其他环境的实现不用遵守,还是将块级作用域的函数声明当作let来处理

const

const 实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。

  • 对于简单类型的数据(number、boolean、string等),值就保存在变量指向的那个内存地址,因此等同于常量
  • 对于复合类型的数据,变量指向的内存地址,保存的只是一个指针,const只能保证这个指针是固定的

相关文章

  • JavaScript基础学习(八)-变量的声明

    var let const声明变量 var 变量foo用var声明,会发生变量提升,即脚本开始运行时,变量foo已...

  • js基础

    JavaScript基础 JavaScript基础语法 变量的声明 运算符 分支结构 循环结构 函数 数据结构 w...

  • Javascript声明和使用变量

    1.1变量的声明 要在程序中使用变量,就必须从声明变量学起,因为Javascript语法与我们基础的其他程序语言声...

  • 前端开发JavaScript-巩固你的JavaScript

    JavaScript基础语法 变量声明 var 声明一个变量,可赋一个初始值。 let 声明一个块作用域的局部变量...

  • JavaScript 大纲

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

  • JS 语法和数据类型

    讨论 JavaScript 的基本语法,变量声明,数据类型 和 字面量。 1.基础 JavaScript 脚本的源...

  • JS的基本语法--变量及类型

    1. 基本语法 声明(创建) JavaScript 变量在 JavaScript 中创建变量通常称为“声明”变量。...

  • 前端 js

    Javascript 基础语法包括:变量声明、数据类型、函数、控制语句、内置对象等。 在ES5 中,变量声明有两种...

  • 关于js的变量提升(hoisting)

    javascript的变量声明具有hoisting机制,JavaScript引擎在执行的时候,会把所有变量的声明都...

  • 知识点

    javascript【基础】call/apply/bind,数组reduce,数组去重,变量声明提升【跨域】Ima...

网友评论

      本文标题:JavaScript基础学习(八)-变量的声明

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