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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 为啥不能收藏
    查看全部
  • 什么是闭包

    查看全部
  • 闭包的作用

    查看全部
  • forEach

    map不会修改原来的数组

    filer会过滤符合 不会修改原来的数组

    every数组中每一个元素都要符合某个条件

    some只要任意一个元素复符合条件就行

    reduce 操作数组中的两个元素 最后聚合成一个数组

    reduceRight 操作数组中的两个元素 最后聚合成一个数组

    indexOf&lastIndexOf 数组检索

    !!!判断是否为数组

        Array.isArray([]);// true

        [] instanceof Array;// true

        ({}).toString.apply([]) === '[object Array]'

        [].constructor === Array;//true

    查看全部
  • var arr = [1,2,3];
    arr.join(); // "1,2,3"
    arr.join("_") // "1_2_3"
    
    function repeatString(str, n){
        return new Array(n + 1).join(str);
    }
    repeatString("a",3); // "aaa"
    repeatString("Hi", 5); // "HiHiHiHiHi"

    数组逆序

    var arr = [1,2,3]
    arr.reverse(); // [3,2,1]
    arr;// [3,2,1]会改变原数组

    数组排序

    arr.sort默认是按字母,数组首位顺序排序;会修改原数组
    a-b 从小到达排序

    数组合并

    var arr = [1,2,3]
    arr.concat(4,5);// [1,2,3,4,5]
    arr; // [1,2,3]不会修改原数组,参数是二维或多维数组会拉平,添加的元素师二维数组不会被拉平

    返回部分数组

    arr.slice(开始元素索引,结束元素索引)// 左闭合,右开区间,负数表示从后往前数;原数组未被修改!!!
    var arr = [1,2,3,4,5];
    arr.slice(1,3);// [2,3]
    arr.slice(1);// [2,3,4,5]
    arr.slice(1,-1);// [2,3,4]
    arr.slice(-4,-3);// [2]

    数组拼接

    var srr = [1,2,3,4,5]
    arr.splice(2);// return[3,4,5]
    arr;//[1,2]
    arr.splice(2,2);// return [3,4]
    arr;//[1,2,5]原数组会被修改


    查看全部
  • 创建数组:1.字面量的方式

        var arr1 = [1,,2];//1,undefined,2

        var arr2 = [,,];//undefined*2

    数组的长度:最小是0,最长的2^23 - 1

            2.new Array 构造器的方式来创建数组

    数组元素增删:

            arr.length和arr.push的方式添加元素都是在元素的末尾添加元素

            arr.unshift方法是在元素的头部添加元素

            delete arr[2] 只是把第三个元素变成undefined,数组长度不变

    数组迭代,for ; for in 

        for in 遍历出来的数组无序,而且会遍历原型链,使用hasOwnProperty来过滤

    查看全部
  • delete obj.x  delete为删除  obj为对象  x是对象内容

    var obj={x:1};删除x  obj.x 就为undefined

    查看全部
  • 类型检测有typeof ;instanceof;Object.prototype.toString;constructor;duck type

    typeof 100 为"number";typeof true 为"boolean";function "function"

    (undefined) "undefined";newObject() "object";[1,2] "object";NaN "number";null "object";


    查看全部
  • function构造器
    查看全部
  • 严格模式:'use strict';提高错误检查,增强安全性

        不允许适应with

        不允许未声明的变量被赋值

        arguments变为参数的静态副本

        delete参数,函数名报错

        delete不可配置属性报错

        对象字面量重复属性报错

        禁止八进制的字面量

        eval arguments变为关键字,不能作为变量,函数名   

        eval独立作用域 

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



    查看全部
  • 处理异常的顺序是什么?

    try{

    }catch(....){

    }finally{

    }

    先try捕获异常,执行catch里面的内容,最后执行finally里面的内容,当然也可以只写catch或者finally两个中的一个,但是必须写try语句块。

    https://img1.sycdn.imooc.com//5bc5ea8c00015ac807840376.jpg红色区域内,try没有对应的catch,所以throw出去的Error("oops")抛了出去,在此之前不管是否抛异常都要先走finally,所以先输出"finally", 而后外层的try/catch捕获到这个Error("oops"),所以第二条输出"outer" "oops"







    查看全部

  • https://img1.sycdn.imooc.com//5bc5e0b800012c6207740515.jpg注:用typeof判断返回类型时,typeof null === "object"

    查看全部
  • 属性删除

    如图

    查看全部
  • slice(8,-1)截取从第8个字符到最后一个字符(不包括最后一个)

    查看全部
  • 定义多个属性defineProperties

    查看全部

举报

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

微信扫码,参与3人拼团

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

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