zoukankan      html  css  js  c++  java
  • 《你不知道的javascript》【1】——词法/函数/块作用域

    你不知道的JavaScript(上卷)

     
     

    视频选集

    1/4

     

     

     

     

     

     

     

    欺骗词法:

    作用域恶魔

     

     

     

     

     

     

    另外一个不推荐使用 eval(..) 和 with 的原因是会被严格模式所影响(限 制)。with 被完全禁止,而在保留核心功能的前提下,间接或非安全地使用 eval(..) 也被禁止了。

    隐藏函数内部实现

     for 循环永远不会停止

    var i 在全局作用域,每次调用 bar 函数就会被重置为3

    解决方案之一:

    解决方案二:

     类似地:模块封装

    具名:自身的引用更容易

     

     

     

    UMD模式:

    块作用域:

    js 里面 if else 并没有实现块作用域

    with 是一个块级作用域

    try catch 

    es6:let / const

    var 改 let,则只作用于块内

     

     

     

     

     

    变量的声明:编译阶段;

    变量的赋值:运行阶段;

    函数声明也会提升(比如 下面报的不是 type error : foo is not a func 错误

     提升只适用于作用域内

    var a=2 并不在外面的作用域,所以console.log(a) 就是 not defined 错误了

    重复的 var 声明会被忽略掉(再次声明直接取前续声明的LHS地址),但出现在后面的函数声明还是可以覆盖前面的 

    函数重复声明:后面的声明会覆盖前面的声明

    let 和 const 关键字不会造成提升

  • 相关阅读:
    [文档].艾米电子 移位寄存器,Verilog
    [书籍].Pong P. Chu FPGA Prototyping By Verilog Examples
    [转载].FPGA三国志
    [笔记].电机行业常用的中英文对照
    [原创][连载].基于SOPC的简易数码相框 – Nios II SBTE部分(软件部分) 配置工作
    [转载].振南带你入门FAT32文件系统 视频
    [文档].艾米电子 在综合中使用函数,Verilog
    [转载].阿迪老师 《SD卡入门到精通》视频
    [文档].艾米电子 寄存器,Verilog
    [笔记].怎样消除pointer targets in passing argument n of 'func_xxx' differ in signedness警告
  • 原文地址:https://www.cnblogs.com/cx2016/p/13193878.html
Copyright © 2011-2022 走看看