为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • Try catch 执行顺序
    查看全部
  • ? 是 单字符匹配
    * 是 多字符匹配

    .? 是说 . 后面 跟着任意字符
    .* 是说 . 后面 跟着 任意个数字符.,0个,1个,2个......

    查看全部
  • 四种判断是否是数组的方法

    查看全部
  • 如果reduce不传第二个参数 

    默认第一个参数(函数)的第一个参数代表数组的第一个值 

    默认第二个参数(函数)的第一个参数代表数组的第二个值

    查看全部
  • splice会改变原数组

    查看全部
  • 索引"-1"表示最后一个元素 slice取值是左闭右开

    注意最后一个示例里取值索引都是负值

    slice不会改变原数组

    查看全部
  • if(!Object.create){

        Object.create = function(proto){

            function F(){};

            F.prototype = proto;

            return new F;

        }

    }

    注意 new F 会出现一个对象 更重要的是 对象有__proto__ 也就是(next指针) 指针指向F.prototype 也就是传进来的proto 也就实现了对象.__proto__ == proto 其实就是修改了指针的指向 从而形成了新的链表

    查看全部
  • 这里的缺陷我猜是因为new出来的对象 自身除了prototype外 还有比如挂载在new对象之上的属性和方法 比如this.one = 1 this.fn = function foo(){} 等 这些属性和方法也会"附着"在Student.prototype(视频里)这个对象里面 也就是说Student.prototype里面将不仅仅有__proto__这个属性(指针) 还有其他的"附着"物

    查看全部
    0 采集 收起 来源:instanceof

    2020-07-14

  • 正常啊 因为赋值是引用赋值 修改了的是指向对象的引用 而不是原指向

    就像链表 不能修改指向的这个对象自己的地址 而是应该修改用来指向的那个上级指针(next)指向的地址(哎 懂得自然懂了)

    这么说 不修改指针的指向 只是修改指向的内容(还没覆盖第二层的指针) 那么在内存层面 原先是没有改变的 因为新赋予的对象地址可能在银河系之外 所以原先的指向的值没有发生改变

    查看全部
    0 采集 收起 来源:prototype属性

    2020-07-14

  • bind之后返回的函数 没有prototype属性

    查看全部
    0 采集 收起 来源:再谈原型链

    2020-07-14

  • 这里有意思了 直接建了一个链表 链表的__proto__指向null(NULL) 没有指向Object.prototype对象

    查看全部
    0 采集 收起 来源:再谈原型链

    2020-07-14

  • 如果从链表去理解 那constructor确实不过是链表内部"非指针"的一个属性"而已"

    查看全部
    0 采集 收起 来源:概念与继承

    2020-07-14

  • 再写一点关于函数.prototype.__proto__ 和 函数.__proto__的问题

    话说为什么要有 函数.__proto__  因为函数也是对象 函数自身除了继承Object.prototype里的方法外 也有一些函数自己需要继承的公共方法 那这个方法写在哪里 总不能写在Object.prototype里吧 那样所有的对象就都有函数的方法了 岂不乱套? 所以 函数.prototype.__proto__ 指向的是Object.prototype 这样函数可以继承对象的共有方法 而函数.__proto 指向函数.prototype对象 则可以继承所有函数应有的共有方法 

    //(这句待定)所有不在(对象/函数)下的__proto__ 会在其prototype里(如果有prototype的话

    对象.__proto__(next指针) 指向另一个对象prototype

    函数.__proto__(next指针) 直接指向函数.prototype

    查看全部
    0 采集 收起 来源:概念与继承

    2020-07-14

  • 继续用C的思想理解JavaScript

    这里有Object.create 视频里说过了 是新建一个对象 这个对象有一个___proto__属性 这个属性指向了括号里的对象 再将这个对象赋给"子类"的prototype属性(直接说就是将子类的prototype设置为新创建的对象 这个新创建的对象里面有一个__proto__属性 指向"父类"的prototype)

    用c来理解 这里构造了一个节点 节点的next指向父类的prototype对象的首地址 父类的Person.prototype里的__proto__(next)指向谁? Object.prototype 为什么? 因为只有prototype里面有__proto__属性(指针) 其实就是next指针 那这个Object.prototype里的__proto__指向谁(连看都不用看 肯定有__proto__ 就像单链表肯定有next) 指向null呗 因为是最后一个节点 而这个null 和c里的NULL的关系吗.. 嘿嘿

    话说typeof null => 'object' <你不知道的JavaScript(上)>第103页 里面说是底层null的二进制值都是0 而在JavaScript中前三位都为0的话会被判定为object类型 

    而我认为 null就是指针类型 而对象也是指针类型 因为对象就是个指针(也就是地址) c里面的NULL是什么? -> 空指针!!

    查看全部
    0 采集 收起 来源:概念与继承

    2020-07-14

  • ok 我又要开始写东西了..

    <你不知道的JavaScript(上)>里的第91页 写道: 

    在用new调用函数是 会自动执行如下操作:

    1.创建(构造)一个全新的对象

    3.这个新对象会绑定到函数调用的this

    4.如果函数没有返回其他对象, 那么new表达式中的函数调用会自动返回这个新对象


    开始YY:

    "创建一个新的对象" 新的对象有多大?  "绑定到函数调用的this" 其实就是把新"new"出的空间首地址赋给this吧 然后返回这个地址 也就是第四条"会自动返回这个新对象"

    查看全部
    0 采集 收起 来源:概念与继承

    2020-07-14

举报

0/150
提交
取消
课程须知
1.您至少学习了本站“JS入门”、“JS进阶”两门基础课程。 2.如您具备一定实践经验对学习有很大帮助。 3.如您没有脚本编程开发经验,学习过程有可能会受挫部分内容或示例代码,请“暂时略过不懂的部分,后面章节会阐述”,当然想透彻学习,还需大量实践来体会知识的内涵。
老师告诉你能学到什么?
结合实例,深入解析以下知识内容: 1. 数据类型、表达式和运算符、语句; 2. 对象、数组、变量、函数; 3. this、闭包和作用域; 4. OOP; 5. 正则与模式匹配。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!