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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • var yz=obj && obj.y && obj.y.z  从左到右一个个验证对象是否存在,如果存在,就进行到 && 的下一个元素,直到返回最后一个元素值

    查看全部
  • hasOwnProperty 检查是否是对象本身包含的元素。

    查看全部
  • js五种原始类型:number/string/boolean/null/undefined,及对象object类型(Array,Date,Function)

    查看全部
  • getOwnPropertyDescriptor(obj,'属性' )可获取一个属性中所有标签

    configurable是否可配置 为false则delete不能生效

    object.defineProperty(添加属性的对象,'属性',对象的标签)

    Object.create()方法创建一个新对象,使用现有的对象来提供新创建的对象的__proto__

    查看全部
  • 继承,Object.create(Person.prototype)创建一个空对象,指向Person.prototype,Person.call(this, name, age)的作用就是,调用一次Person,把this传入到Person里面执行一遍,把Person原有this上的属性都赋值一遍,赋值到传入的this(Student的this)上

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

    2018-11-08

  • 函数参数--函数声明(若发生命名冲突,会覆盖)-- 变量声明(初始化变量值为undefined,若发生全名冲突,会忽略)

    查看全部
  • JavaScript数据类型

    https://img1.sycdn.imooc.com//5be3d74d0001c8da10020546.jpg

    查看全部
  • 第二次重点
    查看全部
  • instanceof是针对原型链的一个类型判断

    查看全部
  • 类型检测小结


    typeof

    适合基本类型及function检测,遇到null失效。

    instanceof

    适合自定义对你,也可以用来检测原生对象,在不同iframe和window间检测时失效。



    查看全部
  • 对象包含一系列无序的属性,每个属性(可动态添加或删除)都有一个字符串key和对应的value,每个对象都还有个原型

    function foo(){}

    foo.prototype.z=3;

    var obj=new foo();

    [proto](原型):指向foo()的prototype(函数的对象属性)

    访问obj.z--查找对象属性,没有z,再在对象的原型链上继续查找一直到末端

    对象的[class]标签表示它属于那个种类

    对象的[extensible]标签表示它是否允许增加新的属性



    查看全部
  • 实现继承的方式

    其中方式1.2.3都有其弊端,但是3更为完善,方式3是ES5之后才支持的,所以可以使用右侧方法进行模拟。

    查看全部
  • 函数声明和函数表达式的区别:函数声明会被前置

    命名函数表达式在IE6~8是不相等的,在IE9+是相等的

    Function构造器:

        1.在函数构造器里面定义的变量是局部变量

    Function('var localVal = "local";console.log(localVal);')();// 可以立即调用执行
    console.log(typeof localVal);
    // result:local,undefined

        2.不能访问拿到外层函数的局部变量localVal

    var globalVal = 'global';
    (function(){
        var localVal = 'local';
        Function('console.log(typeof localVal,typeof globalVal);')();
    })();
    // result: undefined,string


    查看全部
  • 函数:被定义一次,可执行和调用多次。JS中的函数也称函数对象

    函数的返回值依赖return,一般的函数调用:没有return就会默认在所有代码执行完返回一个undefined;

    如果作为构造器,外部使用new去调用,这样没有return语句或者return后边是基本类型的话,那么会将this作为返回;反之如果return了一个对象的话,这个对象作为new构造器的返回值。

    不同的调用方式下this指向不同:

    foo();直接调用

    o.method();对象方法

    new Foo();构造器

    func.call(o);call/apply/bind

    查看全部
  • 数组VS一般对象

    相同:都可以继承,数组是对象,对象不一定是数组,都可以当作对象添加删除属性

    不同:数组自动更新length;按索引访问数组常常比访问一般对象属性明显迅速。数组对象继承Array.prototype上的大量数组操作方法。

    var str = "hello world";
    str.charAt();// "h"
    str[1];//e
    
    Array.prototype.join.call(str, "_");
    // "h_e_l_l_o__w_o_r_l_d"


    查看全部

举报

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

微信扫码,参与3人拼团

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

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