• Leo Xin
    2019-03-28
    当你认为你已经掌握了JS,JS会反手给你一巴掌。
    
     70
  • 以勒
    2019-04-01
    前面学的宏观任务和微观人物 还记得的同学举个手,点个赞
    
     61
  • _CountingStars
    2019-03-28
    作为一个非前段程序员 看了老师的专栏发现 js 坑真多 各种奇怪的语法和表现 感觉像语言的 bug 一样
    
     10
  • 让时间说真话
    2019-03-30
    首先讲了脚本和模块,而这次老师讲的模块补缺我近段时间用模块时的一些疑问,Js的预处理语法让我更加理解了以前经常用到的作用域。感谢winter!!!
    
     7
  • 无羡
    2019-03-29
    能否讲讲为什么导出的无论是基本类型还是引用类型,都会和原模块的变量有绑定关系?
     1
     6
  • 许童童
    2019-03-28
    通过@babel/parser解析模块文件,然后通过遍历ExportNamedDeclaration,找出所有export的变量,
    spec参考:https://github.com/babel/babel/blob/master/packages/babel-parser/ast/spec.md#exports
    
     5
  • 阿成
    2019-03-28
    https://github.com/aimergenge/get-exported-names-via-babel
     1
     5
  • xwchris
    2019-04-08
    console.log(foo);

    if (true) {
          function foo() {}
    }

    为什么这段代码 我在chrome73中执行得到的是ƒ foo() {}
    展开

    作者回复: 老内核和新内核不一样

    
     3
  • 阿成
    2019-03-28
    * 预处理机制让我对 js 中的声明有了更全面的认识,很多文章中提到的一个词是“提升”,与这里提到的预处理机制不无关联。
    * 关于声明这块儿,这篇文章讲得也有点意思,不知道winter老师怎么看:
    https://zhuanlan.zhihu.com/p/28140450
    * 在我看来,if中的function声明在预处理阶段的”赋值“行为好像被if形成的块级作用域”拦截“了,导致这个赋值行为推迟到if语句块执行开始之前。(这里只是一种隐喻,并不准确)。
    * let,const,class这些在js中的”后来者“由于没有历史包袱,行为大多更加正常(符合直觉,及早抛错)。这让我想到了一篇文章中介绍的temporal dead zone机制:http://es6.ruanyifeng.com/#docs/let#%E6%9A%82%E6%97%B6%E6%80%A7%E6%AD%BB%E5%8C%BA
    展开
     1
     2
  • 阿成
    2019-03-28
    想问一个问题:import 进来的引用为什么可以获取到最新的值,是类似于 getter 的机制吗?
    
     2
  • 二狗
    2019-09-30
    作为一个非前端程序员,日常工作觉得简单的js都会写,复杂的js都能看懂 现在已经一脸问号???
    
     1
  • 洛克不菲勒
    2019-09-03
    看了之后好像明白了,但是又好像什么都没学到,是否需要多看几遍?

    作者回复: 读完以后可以自己查阅相关资料,补充自己的能力体系。

    
     1
  • 固执的鱼wu
    2020-01-08
    for(var i = 0; i < 20; i ++) { void function(i){ var div = document.createElement("div"); div.innerHTML = i; div.onclick = function(){ console.log(i); } document.body.appendChild(div); }(i);}此处的function之前为何要加void,求解答
    
    
  • Geek_gaoqin
    2019-10-12
    “如果我们不用 IIFE”的那个例子,我跑出来为什么也是0到19,而不是老师说的全是20呢?!好想贴个截图,可这个应用没看到上传图片的地方
     1
    
  • 板栗
    2019-08-19
    这篇文章是站在全局的高度对 js 进行了解释。可执行代码:文件、模块、函数体。以及代码的处理方式:预处理、执行序言。666
    
    
  • Geek_7e2326
    2019-07-26
    闭包那边解释的不对吧,闭包应该可以看做一个函数,可以让外部访问函数内部的变量,而不会污染全局。
    你说的是访问外部的变量。

    作者回复: 光秃秃的一个论点,没来源没分析,就说我讲错了,我还真不知道该怎么反驳你……

    
    
  • 五十四
    2019-07-13
    第一次a不能赋值,这样才能不被改变,这是为什么呢?

    a.js

    let a

    let setTestA = function(n){
      a = n
    }

    export default{
      a,
      setTestA
    }

    b.js

    import x from './script/a'
    x.setTestA(123)
    console.log(x.a) // undefined


    ---------------
    a.js

    let a = {}

    let setTestA = function(n){
      a.bb = n
    }

    export default{
      a,
      setTestA
    }

    b.js

    import x from './script/a'
    x.setTestA(123)
    console.log(x.a.bb) // 123
    展开
    
    
  • 学聪
    2019-07-11
    export a from "a.js"
    这语法没问题吗?是不是得改成
    export {a} from "a.js"
    
    
  • 奋逗的码农哥
    2019-07-05
    看完老师的文章,再看看大家的留言评论,能够体会到交流学习的乐趣。:-)
    
    
  • 温木
    2019-05-05
    函数提升分为赋值和不赋值两种情况。
    
    
我们在线,来聊聊吧