美文网首页
JS 定义变量方式

JS 定义变量方式

作者: 快乐的大鹅 | 来源:发表于2017-03-24 14:53 被阅读0次
var
  • 变量可以没有初始值 会报undefined但不会报错
  • 变量可以修改
  • 变量可以覆盖 (重复定义)
  • 函数内重复定义对函数外无影响
  • 函数内重新赋值对函数外有影响
    var a = 1;
    var b;
    var c = 2;
    console.log(a);//1
    console.log(b);//undefined
    console.log(c);//2
    var c = 3 ;
    console.log(c);//3
    c = 4;
    console.log(c);//4
    k();
    function k(){
        var c = 5;
        console.log(c);//5
        c = 6;
        console.log(c);//6
    }
    console.log(c);//4
    m();
    function m(){
        c = 7;
    }
    console.log(c);//7
let
  • 块级作用域
  • 函数内外不影响 避免了全局变量的污染
  • 没有得到广泛的支持 (Sublime Text 3 Nodejs 下 Run)
    let a = 1;
    let b;
    let c = 2;
    console.log(a);//1
    console.log(b);//undefined
    console.log(c);//2
    let c = 3 ;//SyntaxError: Identifier 'c' has already been declared
    c = 4;
    console.log(c);//4
    k();
    function k(){
        var c = 5;
        console.log(c);//5
        c = 6;
        console.log(c);//6
    }
    console.log(c);//4
const
  • 变量必须有初始值
  • 变量值不可更改
  • 变量值不可覆盖
    const a = 1;
    const b;//SyntaxError: missing = in const declaration
    const c = 2;
    console.log(a);//1
    console.log(c);//2
    const c = 3 ;//SyntaxError: redeclaration of const c
    c = 4;//TypeError: invalid assignment to const `c'
    k();
    function k(){
        const c = 5;
        console.log(c);//5
    }
    console.log(c);//2

20170506补充

console.log(f);//ReferenceError: f is not defined

没有定义变量直接使用会报错
ReferenceError: f is not defined

console.log(f);//undefined
var f;

变量在使用之后才被定义 对于var来说 会发生变量提升
不会报错而是报没有定义
undefined

console.log(f);//ReferenceError: can't access lexical declaration `f' before initialization
let f;

而对于let的情况 回直接报错
ReferenceError: can't access lexical declaration `f' before initialization

相关文章

  • JS 定义变量方式

    var 变量可以没有初始值 会报undefined但不会报错 变量可以修改 变量可以覆盖 (重复定义) 函数内重复...

  • day01-JS

    0、js引入方式和打印方式 四种引入方式 三种打印方式 01函数 (1)全局变量和局部变量全局变量:直接定义的变量...

  • Javascript内存泄露

    常见的js内存泄露 1. 意外的全局变量 JavaScript 处理未定义变量的方式比较宽松:未定义的变量会在全局...

  • js使用const声明常量

    js定义变量有三种方式:var、let、const var定义的变量可以修改,如果不初始化会输出undefined...

  • const, var, let的区别 1.10

    js中三种定义变量的方式const, var, let的区别。 1.const定义的变量不可以修改,而且必须初始化...

  • js中const,var,let的区别

    js中三种定义变量的方式const, var, let的区别。1.const定义的变量不可以修改,而且必须初始化 ...

  • js变量和数据类型

    1,变量 js是弱类型脚本语言,使用之前无需定义,可直接使用,主要有两种定义方式 1,隐式定义:直接给变量赋值 t...

  • JS—匿名函数与命名函数

    链接,我之前做的两篇笔记js变量作用域,里面提到定义函数的不同方式,导致的变量声明提升问题。还有这篇js特殊的对象...

  • VUE CSS样式变量获取data数据变量

    直接上代码: 这样我们就在vue中实现了在样式里使用js变量的方法: 及通过css定义变量的方式,将变量在行内注入...

  • 在vue中实现了在样式里使用js变量的方法

    这样我们就在vue中实现了在样式里使用js变量的方法:及通过css定义变量的方式,将变量在行内注入,然后在styl...

网友评论

      本文标题:JS 定义变量方式

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