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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 包装对象 1.就是将基本类型包装起来的对象 比如var str = "string";是一个string类型 var strObj = new String("string");就是一个包装对象 2.截图中有个例子 如果尝试以对象的方式使用基本类型时,JavaScript会自动将基本类型转化成一个临时的包装对象,比如图中的a.t = 3是合法的。 但是注意使用完之后临时包装对象会被销毁。再使用a.t是undefined
    查看全部
  • 隐式转换 1.+和-会有各自的用法 比如数字之间可以使用+-,变成一个数字 但是字符串+数字就是一个字符串拼接,比如'37'+37='3737' 字符串-数字就是数字之间的减法,比如37-'10'=27 2.===是严格相等 首先必须是类型相同,比如数字和数字,string和string 但是new object === new object不为true,因为他们即使内容相同,指针不是同一个,所以是false 还有NaN === NaN(false),因为NaN不等于任何类型,连它自己也不相等 3.==类型不同,尝试转换的规则 null==undefined相等 number==string,转number,比如1=="1.0"(true) boolean==number,转number,比如1==true(true) object==number|string,转基本类型,比如new String('hi') =='hi'(true)
    查看全部
  • 注意:不同的window或iframe间的对象类型检测不能使用instanceof,因为是不同的构造器。 instanceof原理: 判断右边的构造器的prototype属性是否出现在它左边对象的原型链上
    查看全部
    0 采集 收起 来源:instanceof

    2018-03-01

  • JavaScript的数据类型 共有6种数据类型,其中5个是基本类型: number string boolean null undefined 还有一个是对象object,object包含了很多的类型 function Array Date等等
    查看全部
  • in:寻找至Object.prototype hasOwnProperty('z'):只在实例中寻找是否包含z属性
    查看全部
    0 采集 收起 来源:prototype属性

    2018-03-01

  • 注意的细节: 修改Student对象的原型prototype上的属性,会影响到之前创建的实例; 如果整个修改Student.prototype,则不会影响之前创建的实例,只会影响到以后创建的实例。
    查看全部
    0 采集 收起 来源:prototype属性

    2018-03-01

  • extensible是否可以扩展
    查看全部
  • //bind(null)的函数是没有原型的 function abc(){} abc.prototype Object { … } var binded = abc.bind(null); typeof binded "function" binded.prototype undefined //是没有原型的
    查看全部
    0 采集 收起 来源:再谈原型链

    2018-03-22

  • var obj = Object.create(null); //是没有Object.prototype的
    查看全部
    0 采集 收起 来源:再谈原型链

    2018-03-01

  • 严格模式:
    查看全部
  • with语句已不建议继续使用
    查看全部
  • c?a:b c sure then select a c false then select b
    查看全部
  • 继承的实现方式: //Student的原型指向Persion的原型 Student.prototype = Object.create(Persion.prototype); //重置一下Student的原型结构中的constructor。如不重置,会默认指向Persion Student.prototype.constructor = Student;
    查看全部
    0 采集 收起 来源:概念与继承

    2018-02-28

  • 对象.prototype的结构
    查看全部
    0 采集 收起 来源:概念与继承

    2018-02-28

  • 对象属性的命名规则: 1.通过[]操作符为对象添加属性时,属性名称可以是任何字符串(包括只包含空格的字符串和空字符串); 2.通过.操作符为对象添加属性时,属性名称必须是合法的标识符名称; 3.如果属性名包含非法的标识符字符,则只能采用obj[“propertyName”]的形式; 4.如果属性名是合法的标识符,读取时即可以采用obj.propertyName,也可以采用obj[“propertyName”]的形式; 采用obj[propertyName]的形式读取或创建对象属性时,解释器首先会检查propertyName是值类型字面量还是用户定义的变量,如果propertyName是值类型的字面量,则解释器自动将其转换为字符串后再读取或创建属性,如obj[1],obj[true]会被转换成obj["1"]、obj["true"].如果propertyName是变量名称(或者是表达式),则解释器会读取变量内容(或对表达式求值) 对象作为key时,先会被隐式转换为字符串,其值为[object Object]。所以obj[{}]其实是obj.[object Object],然后{x:1}也是对象,转换后key值一样是[object Object],其实导致了重写
    查看全部

举报

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

微信扫码,参与3人拼团

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

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