js基础

作者: jluemmmm | 来源:发表于2020-10-18 22:59 被阅读0次
    const name = 'hello'
    console.log(!typeof name === 'object') // false
    console.log(!typeof name === 'string') // false
    
    console.log(typeof a)
    let a = 'a' // Uncaught ReferenceError: a is not defined at xxx
    
    console.log(typeof b)
    const b = 'b' // Uncaught ReferenceError: cannt access 'b' before initialization
    
    // 如果区块中存在 let 和const 命令,这个区块对这些命令声明的变量,从一开始就形成封闭作用域,在声明之前使用这些变量,就会报错。
    
    const fn = ob => {
      console.log(obj) // {value: 1}
      ob.value = 2
      console.log(obj) // {value: 2}
      ob = { value: 3 }
      console.log(obj) // {value: 2}
    }
    const obj = {
      value: 1
    }
    fn(obj)
    console.log(obj) // {value: 2}
    // ob 和 obj 都是指向堆内存空间的指针,修改 value 属性值后其被更改,对ob重新赋值后,obj指向堆内存中分配的新空间。
    
    try {
      setTimeout(() => {
        throw new Error('error_0') // 不会被捕获,事件循环
      })
      Promise.reject('error_1')// try catch无法捕获Promise.reject抛出的错误
      await Promise.reject('error_2')  // try catch 可以捕获await 抛出的错误
    } catch (e) {
      console.log(e)
    }
    

    相关文章

      网友评论

          本文标题:js基础

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