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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • object.seal   对象密封,不能修改配置,只能修改值,不能添加新属性

    object.isSeal

    object.preventExtensions 阻止对象扩展,不能添加新属性

    object.isExtensible  

    object.freeze  冻结对象,对象永远不可变

    object.isFrozen 

    查看全部
  • var a=b=1;

    var a = 1,b =1;


    查看全部
  • 严格等于会首先判断类型
    NaN 不仅六亲不认,连自己也不认识
    有number时,会把string转换为number
    有boolean时,会把boolean先转换为number
    有object时,先尝试把对象转为基本类型,能转为基本类型的即true,其他为false



    查看全部
  • 严格等于会首先判断类型
    NaN 不仅六亲不认,连自己也不认识

    查看全部
  • null == undefined 
    new Object() == new Object()

    [1,2] == [1,2]

    查看全部
  • <script type="text/javascript">   

            /*

             * param1 Array 

             * param2 Array

             * return true or false

             */

            function arraysSimilar(arr1, arr2) {

              // 首先判断类型是否相同

              if (typeof arr1 !== typeof arr2) return false

              // 判断是否是数组

              if (arr1 instanceof Array) { 

                // 是数组

                // 数组长度是否相等

                // 不相等

                if (arr1.length !== arr2.length) return false

        

                // 相等

                // 是否是空数组

                if (arr1.length === 0) return true

        

                // 不是

                const string1 = getType(arr1)

                const string2 = getType(arr2)

                if (string1 !== string2) return false

              } else { 

                // 不是数组

                // 判断是否是对象

                if (typeof arr1 === 'object') { 

                  // 是对象

                  if (arr1 === null || arr2 === null) return false

                  if (arr1 instanceof Date && arr2 instanceof Date) return true

                } else {

                   // 不是对象

                  if (arr1 !== arr2) return false

                }

              }

              return true

            }


            function getType(arr) {

              const type = []

              arr.forEach(item => {

                if (typeof item === 'object') {

                  type.push(Object.prototype.toString.call(item))

                } else {

                  type.push(typeof item)

                }

              });

              return type.sort().toString()

            }

        </script>


    查看全部
    0 采集 收起 来源:编程练习

    2019-03-11

  • oop 面向对象

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

    2019-03-11

  •  对象标签、对象序列化 [未更新视频]


    var obj = {x:1, y:2};obj.toString = function(){return this.x + this.y;};obj.valueOf = function(){return this.x + this.y + 100}"result" + obj; // 这里是result103,而不是result3

    JavaScript中的二元+操作符,若操作数为对象,则尝试转换为基本类型。优先级是先找valueOf,再找toString。

    注意到,若valueOf/toString返回的不是基本类型,而是对象,则会被忽略。


    var obj = {x:1, y:2};obj.toString = function(){return this.x + this.y;};obj.valueOf = function(){return {x : 1}}; // 不可用的valueOf"result" + obj; // "result3", 因为valueOf无效,使用toString作为结果返回

    若valueOf/toString均不可用,则报TypeError异常。


    var obj = {x:1, y:2};obj.toString = function(){return {};}; // 不可用的toStringobj.valueOf = function(){return {x : 1}}; // 不可用的valueOf"result" + obj; // Uncaught TypeError: Cannot convert object to primitive value


    查看全部
  • 属性标签对应值

    查看全部
  • 严格模式消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;


    查看全部
  • 利:with语句可以在不造成性能损失的情況下,减少变量的长度。其造成的附加计算量很少。使用'with'可以减少不必要的指针路径解析运算。需要注意的是,很多情況下,也可以不使用with语句,而是使用一个临时变量来保存指针,来达到同样的效果。

    弊:with语句使得程序在查找变量值时,都是先在指定的对象中查找。所以那些本来不是这个对象的属性的变量,查找起来将会很慢。如果是在对性能要求较高的场合,'with'下面的statement语句中的变量,只应该包含这个指定对象的属性。


    查看全部
  • enumerable(可枚举性),如果一个属性的enumerable为false,下面三个操作不会取到该属性值。
    * for..in循环
    * Object.keys方法
    * JSON.stringify方法

    查看全部
  • https://img1.sycdn.imooc.com//5c8295f70001ad0d07740457.jpg

    注意,obj.hasOwnproperty().属性

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

    2019-03-09

  • https://img1.sycdn.imooc.com//5c82940200018e8a06140314.jpg

    修改构造器原型的对象student,是会影响已经实例化的对象bosn;直接给student的原型赋值则不会影响,只会影响之后实例化的对象nunnly

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

    2019-03-09

  • https://img1.sycdn.imooc.com//5c8292740001f3ae04520190.jpg

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

    通过object.creat(),   bind(),创建的对象是一个空对象,没有原型的 

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

    2019-03-09

举报

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

微信扫码,参与3人拼团

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

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