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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • Person函数直接调用的话,this会指向全局对象,就是window,用new来调用,this会指向原型为Person.prototype的空对象,用this.name来对空对象赋值,this会作为return值.
    查看全部
    0 采集 收起 来源:概念与继承

    2015-04-25

  • Foo.prototype默认有constructor和_proto_属性(不是标准属性,Object.prototype对象上的方法才会被每一个一般的对象所使用),x:1是通过赋值语句增加的,Foo函数有个prototype对象属性,作用是当使用new Foo()来构造Foo()的实例的时候,那么这个prototype会用作new出来的对象原型,也就是_proto_,prototype和原型是两回事,prototype是函数对象上预设的对象属性,而原型通常是obj3对象上的原型,是构造器的prototype属性.
    查看全部
    0 采集 收起 来源:概念与继承

    2015-04-25

  • 用new来调用Foo()时候,function Foo(){this.y=2;}作为一个构造器使用,this指向一个对象,这个对象的原型会指向构造器的prototype属性,this指向obj3,this.y=2会作为返回值,并在构造器里面调用的时候,会把y赋值为2,obj3的原型(proto)会指向Foo.prototype,y是obj3这个对象上的,x是这个原型链上的原型,也就是Foo.prototype.Foo.prototype也是对象,也有属性.
    查看全部
    0 采集 收起 来源:概念与继承

    2015-04-25

  • 类型检测小结
    查看全部
  • 类型检测
    查看全部
  • JS6种数据类型
    查看全部
  • 特殊运算符的种类: 1、条件运算符 c?a:b c为true 则取a,否则取b 2、逗号运算符 a,b 例如 var s = (1,2,3),则s依次赋值,最后输出为3 3、delete运算符 delete obj.x 删除对象obj中的x属性 在IE9下,obj中必须configurable:true 才可以删除,否则无效 4、in运算符 判断obj是否有值或window里是否有变量,返回布尔值 例如 attr in json 或 'document' in window 5、instanceof 判断对象类型 {} instanceof Object // true(返回布尔值) 6、new运算符 创建一个新对象 new obj / new array ... 7、this对象 全局用指向window,函数内指向函数本身,浮动指针 8、typeof 判断对象,返回对象类型 例如 typeof 100 === 'number' // true(判断对应类型字符串) 9、void 一元的,判断所有值,返回均为undefined 一般delete 运算符可以删除对象的属性,而如果使用方法Object.defineProperty(对象,'属性',{configurable:false})处理了对象,该属性就不会被删除,反之ture就是可以被删除。
    查看全部
  • bind方法(es5 ,ie9+)与this 这对需要绑定一次然后重复调用,但仍然实现这种绑定的会比apply跟call更高效 ; 如上例,g还是按绑定的数值来,为test,而不是为37
    查看全部
    0 采集 收起 来源:[JavaScript]this

    2015-04-24

  • bind方法(es5 ,ie9+)与this 这对需要绑定一次然后重复调用,但仍然实现这种绑定的会比apply跟call更高效 ; 如上例,g还是按绑定的数值来,为test,而不是为37
    查看全部
    0 采集 收起 来源:[JavaScript]this

    2015-04-24

  • call/apply 方法与this; call和apply中的参数传入一个对象,使用call和apply的方法的this指向这个对象。 call跟apply的差别在于call的附加参数是非数组,apply的附加参数是数组
    查看全部
    0 采集 收起 来源:[JavaScript]this

    2015-04-24

  • 严格模式:‘user strict’让代码在严格模式下执行 与普通模式的区别: 1、不允许使用with(如果使用会报SyntaxError); 2、不允许未声明的变量赋值(如果没有声明就赋值会报ReferenceError); 3、arguments变为参数的静态副本; 4、delete参数、函数名会报错SyntaxError; 5、delete不可配置的属性报错TypeError; 6、对象字面量重复属性名报错SyntaxError; 7、禁止八进制字面量报错SyntaxError; 8、eval,arguments变为关键字,不能作为变量、函数名,报错SyntaxError; 9、eval独立作用域;
    查看全部
  • with可以修改当前的作用域, with(document.forms[0]){ console.log(name.value); //实际上是调用document.forms[0].value } 但实际上with的使用让js引擎优化更难,可读性差,可被变量定义代替,严格模式下被禁用
    查看全部
  • 嵌套1:如果内层没有相对应的catch只有finally,那么先执行内层的finally再执行外层的catch; 嵌套2:如果内层有相对应的catch还有finally,那么先执行内层的catch-内层的finally,因为内层的catch已经抓住了这个异常,所以不会再抛出到外层; 嵌套3:如果内层有相对应的catch还有finally并且内层的catch又抛出了一个异常,那么先执行内层的catch-内层的finally-外层的catch;
    查看全部
  • 第二个是Object.prototype.toString
    查看全部
  • function foo(){ var a=b=1;//此时的b是全局变量 var a=1,b=1;//此时的a,b是局部变量 } foo(); console.log(typeof a);//'undefined' concole.log(typeof b);//'number'
    查看全部

举报

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

微信扫码,参与3人拼团

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

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