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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • array.join 数组转换成字符串
    查看全部
  • 属性
    查看全部
  • 严格模式下的注意事项

    查看全部
  • repeat

    查看全部

  • 循环A数组 item typeof item ===Object 通过object.proptype.toString 判断类型 ===null 获取A数组类型组成的数组typeArray 遍历B数组 item2 获取类型 到typeArray 中查找是否有此类型

    function arraysSimilar(arr1, arr2) {let typeArr = [],type,result = true,typeArr2 = [];if (getType(arr1) != getType(arr2) || (getType(arr1) != 'array' && getType(arr2) != 'array') || arr1.length != arr2.length) {return false;}if (getType(arr1) != "array") {typeArr.push(getType(arr1))} else {arr1.map(function(item) {type = getType(item);if (!typeArr.includes(type)) {typeArr.push(type)}})}if (getType(arr2) != "array") {if (!typeArr.includes(getType(arr2))) {return false;}typeArr2.push(getType(arr2))} else {arr2.map(function(item) {type = getType(item);if (!typeArr.includes(type)) {result = false;return false;}typeArr2.push(getType(arr2))})}if (result && typeArr.length != typeArr2.length) {result = false;}return result}function getType(v) {let type = typeof v;if (v === null) {type = null;} else if (type == 'object') {type = Object.prototype.toString.apply(v).split(" ")[1].split("]")[0].toLowerCase();}return type;}


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

    2019-02-09

  • 对象中包含一系列属性,这些属性是无序的。每个属性都有一个字符串key和对应的value。

    var obj = {};obj[1] = 1; obj['1'] =2; obj;//Object{1:2}

    obj[{}] = true; obj[{x:1}] = true;   obj// Object{1:2,[object Object] : true}; 

    查看全部
  •                                                 运算符

    1) 逗号运算符 : var val = (1,2,3) ; // val = 3;

    2) delete运算符 : var obj = {x : 1};     obj.x; // 1      delete obj.x;     obj.x   // undefined

        var obj = {} ;  Object.defineProperty(obj,'x',{ configurable : false, vale : 1 } ) ; delete obj.x ;// false     obj.x  //1

    3) new 运算符 : function Foo(){}  var obj = new Foo();  obj.x = 1 

    4) this运算符 : var obj = { func : function(){return this;} }; obj.func();//obj







    查看全部
  • Object.create()es5之后才有,

    es5之前可用if(!Object.create){Object.create=function(proto){

        function F(){};F.prototype=proto;return new F;};

    }

    查看全部
  • 类型检测:

    typeof 

             最常见,返回一个字符串,非常适用于函数对象和基本类型的判断。

             typeof null = 'object'

    instanceof  :  

              对象  instanceof  函数对象/函数构造器

              两边参数不符合,将返回false / typeError异常

              不同window或iframe间的对象类型检测不能使用

    object.prototype

    construct

    duck type


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




    查看全部
  • NaN ≠ NaN
    Object ≠ Object


    查看全部
  • 很秀的题, 对基础不扎实的我做起来还是有点困难.
    不过也是完成了


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

    2019-01-11

  • var sourceArr = [1, 'sdsd', 'rerds', true, {
        "keys": "value"
    }, null, function() {}, new Date(), window]

    var checkArr = ['wook', '62', 25, false, {
        "key": "122"
    }, null, function() {}, new Date(), window]


    function isSlimilarArray(arr1, arr2) {
        // 1. 判断参数是不是数组
        if (!isArray(arr1) || !isArray(arr2)) return false

        // 2.判断对比数组长度是否相同
        if (arr1.length !== arr2.length) return false

        // 3.生成数组数据结构
        var
            map1 = setDataMap(arr1),
            map2 = setDataMap(arr2)

        // 4.对比两组结构是否一致
        for (var key in map1) {
            if (map1[key] !== map2[key]) return false
        }


        return true
    }

    // 数据类型检查
    function isArray(arr) {
        return Object.prototype.toString.call(arr) === '[object Array]'
    }

    function setDataMap(arr) {
        var map = {}

        for (var item of arr) {
            if (typeof(item) !== 'object') {
                map[typeof(item)] = map[typeof(item)] ? ++map[typeof(item)] : 1

            } else {

                var types = Object.prototype.toString.call(item)
               map[types] = map[types] ? ++map[types] : 1

            }
        }
        console.log(map)

        return map
    }



    var ret = isSlimilarArray(sourceArr, checkArr)
    console.log(ret)

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

    2019-01-11

  • 数组头部添加元素

    arr.unshift(obj);

    数组尾部移除元素

    arr.pop();

    数组头部移除元素

    arr.shift();


    查看全部
  • class标签查看对象类型

    function getType(o){

    return toString.call(o).slice(8,-1);
    }

    查看全部
  • 111111

    查看全部

举报

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

微信扫码,参与3人拼团

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

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