美文网首页
前端JS指南

前端JS指南

作者: OzanShareing | 来源:发表于2021-07-24 23:07 被阅读0次

    1. document对象 && window对象


    所有的全局函数对象都属于window对象的属性方法

    区别:

    • window窗体window 对象表示浏览器中打开的窗口。
    • document页面documentwindow的一个子对象、一个对象属性。

    2. var与let、const的区别


    2.1 var声明变量存在变量提升,let和const不存在变量提升

    什么是变量提升?
    JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。
    JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。

    console.log(a); // undefined  ===>  a已声明还没赋值,默认得到undefined值
    var a = 100;
    console.log(b); // 报错:b is not defined  ===> 找不到b这个变量
    let b = 10;
    console.log(c); // 报错:c is not defined  ===> 找不到c这个变量
    const c = 10;
    

    再来看这段代码

    function fn() {
       //var a
        if (true) {
            console.log(a + ' now')
        }
        else {
            var a = 1
            console.log(2)
        }
    }
    
    fn() // a -> undefined
    

    我们发现不执行的代码也会影响会执行的代码,因为var a会提升到if语句的前面。

    undefined可以翻译为不明确not defined可以翻译为未定义

    Java中变量分为全局变量成员变量)或者局部变量,在方法体中定义的变量都是局部变量,否则是全局变量(即在方法体外,在类中定义的变量)

    JavaScript中,在方法体外外用var定义的变量其它方法可以共享,在方法中用var定义的变量只有该方法内生效。

    2.2 let、const都是块级局部变量

    顾名思义,就是只在当前代码块起作用

    {
        let a = 1
    }
    console.log(a) // undefined
    

    const 的特性和 let 完全一样,不同的只是:

    1)声明时候必须赋值

    const a
    

    编译器报错

    控制台报错

    SyntaxError: Missing initializer in const declaration
    

    2)只能进行一次赋值,即声明后不能再修改

    const a=1
    a=2
    

    编译器报错

    控制台报错

    TypeError: Assignment to constant variable.
    

    3)如果声明的是复合类型数据,可以修改其属性

    2.3同一作用域下let和const不能声明同名变量,而var可以
    const a =2
    const a=1
    
    SyntaxError: Identifier 'a' has already been declared
    

    相关文章

      网友评论

          本文标题:前端JS指南

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