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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 一般函数的this (浏览器)window

    严格模式是 undefined

    查看全部
    0 采集 收起 来源:[JavaScript]this

    2018-12-25

  • 匿名函数的作用:调用栈 call stack 可见名称

    可以递归调用自己

    查看全部
  • 函数声明 和 四种函数表达式

    查看全部
  • 代码执行阶段


    查看全部
  • 函数声明的冲突解决:覆盖

    变量声明的冲突解决:忽略

    查看全部
  • 变量初始化


    查看全部
  • 变量对象 variable object 用于存储执行上下文中的

    变量 函数声明 函数参数

    查看全部
  • 执行上下文 excution context

    查看全部
  • 作用域链 ,,,

    查看全部
  • js 中没有块级作用域

    全局 函数 eval

    查看全部
  • 不懂,什么鬼

    查看全部
  • 不懂,贼他妈的难

    查看全部
  • 函数调用方式4种

    查看全部
  • 1)创建数组、数组的增删改查

    首先是数组的创建,有两种方式:

    var arr = [1,2,3];   //以字面量的形式创建

    var arr = new Array(1,2,3); //以构造函数的形式创建

    其中第二种以构造函数的形式有两种参数形式,第一种是直接传入数组的元素,第二种则是传入数组的length大小

     

    数组创建好了,如何去增删改查?

    增加:栈方法里的push()或者unshift(),前者是表示从数组的后面插入,后者则是从数组的前面插入(老司机开车了- -)

    删除:栈方法里的pop()或者shift(),跟上面一样,前者是从数组的后面删除,后者是从前面删除,还有一种方法是Array.prototype.splice(),它有删除功能,可以传入两个参数,第一个表示删除的起点位置,第二个参数表示删除的元素个数

    修改:可以通过索引去修改值或者用上面说到的Array.prototype.splice(),它有替换功能,可以传入三个参数,第一个表示删除的起点位置,第二个参数表示删除的元素个数,第三个参数表示替换的元素

    查找:可以通过索引方法indexOf()或者lastIndexOf()去查找某个元素,方法有两个参数,第一个表示要查找的元素,第二个参数可以指定查找的起点位置

     

    2)数组方法

    Array.prototype.join(sep)

    将数组转化为字符串,其中sep是分隔符,当sep没传入时默认的分隔符为逗号,如下:

    var arr = [1,2,3];

    arr.join();     //"1,2,3"

    arr.join("||"); //"1||2||3"

     

    Array.prototype.sort()

    数组排序方法,默认是按字母先后顺序进行排列,如:

    var arr = ["a","c","b"];     //["a","b","c"]

    如果想要比较数字,则需要给sort传入一个比较函数,如:

    arr.sort(function(a,b){

         return a-b;

    });

    传入的函数返回值若为负数则表示a排在b前面,若为正数则相反,所以当我们想要升序排序则return a-b;若想要降序排序则return b-a;

     

    Array.prototype.reverse()

    数组的倒序排序,没什么好解释的啦- -

     

    Array.prototype.concat()

    数组的拼接方法,传入的参数是我们想要跟数组拼接起来的数或者另外一个数组

    当传入数字或者数组时则附加到原数组的后面,当传入数组时,如果数组里还有数组就不会进行二级的拼接,如下:

    arr.concat(4,5);    //[1,2,3,4,5]

    arr.concat(4,5,[6,7]);  //[1,2,3,4,5,6,7]

    arr.concat(4,5,[6,[7,8]]);  //[1,2,3,4,5,6,[7,8]]

    PS:Array.prototype.concat()并不会影响原数组,只是会返回一个新的数组

     

    Array.prototype.slice()

    生成子数组方法,参数有两个,第一个表示起始位置,第二个表示结束位置的后面一位,如:

    var arr = [1,2,3,4,5,6,7,8];

    arr.slice(2,4); //[3,4]

    PS:Array.prototype.slice()并不会影响原数组,只是会返回一个新的数组

     

    Array.prototype.splice()

    这个方法很强大,它能够执行数组的删除,替换,插入操作

    删除:传入两个参数,第一个表示起始位置,第二个表示从起始位置起删除的元素个数

    arr.splice(2,1);    //[3]

    替换:传入三个参数,第一个表示起始位置,第二个表示从起始位置起删除的元素个数,第三个则是要替换的元素

    arr.splice(2,1,9);  //[3]

    插入:传入三个参数,第一个表示起始位置,第二个表示从起始位置起删除的元素个数(此处为0),第三个则是要插入的元素

    arr.splice(2,0,10,11);  //[]

    PS:Array.prototype.splice()会影响原数组,返回一个删除的元素数组

     

    迭代方法:

    Array.prototype.forEach():对数组的每一项运行给定函数,不返回值

    Array.prototype.map():对数组的每一项运行给定函数,返回运行结果所组成的数组

    Array.prototype.filter():对数组的每一项运行给定函数,返回运行结果为true所组成的数组

    Array.prototype.every():对数组的每一项运行给定函数,当所有运行结果为true时才返回true

    Array.prototype.some():对数组的每一项运行给定函数,当有运行结果为true时才返回true

     

    归并方法:

    Array.prototype.reduce():从左到右对数组进行依次累积操作,返回最后的运行结果,如:

    求数组的累加

    var arr = [1,2,3];

    arr.reduce(function(x,y,index,arr){

         return x + y;

    });

    Array.prototype.reduceRight():从右到左对数组进行依次累积操作,返回最后的运行结果

    var arr = [1,2,3];

    arr.reduceRight(function(x,y,index,arr){

         return x + y;

    });

     

    查找方法:

    Array.prototype.indexOf():两个参数,第一个表示查找的元素,第二个表示查找的起点位置

    Array.prototype.lastIndexOf():两个参数,第一个表示查找的元素,第二个表示查找的起点位置


    查看全部
  • 1)创建数组、数组的增删改查首先是数组的创建,有两种方式:var arr = [1,2,3];   //以字面量的形式创建var arr = new Array(1,2,3); //以构造函数的形式创建其中第二种以构造函数的形式有两种参数形式,第一种是直接传入数组的元素,第二种则是传入数组的length大小 数组创建好了,如何去增删改查?增加:栈方法里的push()或者unshift(),前者是表示从数组的后面插入,后者则是从数组的前面插入(老司机开车了- -)删除:栈方法里的pop()或者shift(),跟上面一样,前者是从数组的后面删除,后者是从前面删除,还有一种方法是Array.prototype.splice(),它有删除功能,可以传入两个参数,第一个表示删除的起点位置,第二个参数表示删除的元素个数修改:可以通过索引去修改值或者用上面说到的Array.prototype.splice(),它有替换功能,可以传入三个参数,第一个表示删除的起点位置,第二个参数表示删除的元素个数,第三个参数表示替换的元素查找:可以通过索引方法indexOf()或者lastIndexOf()去查找某个元素,方法有两个参数,第一个表示要查找的元素,第二个参数可以指定查找的起点位置 2)数组方法Array.prototype.join(sep)将数组转化为字符串,其中sep是分隔符,当sep没传入时默认的分隔符为逗号,如下:var arr = [1,2,3];arr.join();     //"1,2,3"arr.join("||"); //"1||2||3" Array.prototype.sort()数组排序方法,默认是按字母先后顺序进行排列,如:var arr = ["a","c","b"];     //["a","b","c"]如果想要比较数字,则需要给sort传入一个比较函数,如:arr.sort(function(a,b){     return a-b;});传入的函数返回值若为负数则表示a排在b前面,若为正数则相反,所以当我们想要升序排序则return a-b;若想要降序排序则return b-a; Array.prototype.reverse()数组的倒序排序,没什么好解释的啦- - Array.prototype.concat()数组的拼接方法,传入的参数是我们想要跟数组拼接起来的数或者另外一个数组当传入数字或者数组时则附加到原数组的后面,当传入数组时,如果数组里还有数组就不会进行二级的拼接,如下:arr.concat(4,5);    //[1,2,3,4,5]arr.concat(4,5,[6,7]);  //[1,2,3,4,5,6,7]arr.concat(4,5,[6,[7,8]]);  //[1,2,3,4,5,6,[7,8]]PS:Array.prototype.concat()并不会影响原数组,只是会返回一个新的数组 Array.prototype.slice()生成子数组方法,参数有两个,第一个表示起始位置,第二个表示结束位置的后面一位,如:var arr = [1,2,3,4,5,6,7,8];arr.slice(2,4); //[3,4]PS:Array.prototype.slice()并不会影响原数组,只是会返回一个新的数组 Array.prototype.splice()这个方法很强大,它能够执行数组的删除,替换,插入操作删除:传入两个参数,第一个表示起始位置,第二个表示从起始位置起删除的元素个数arr.splice(2,1);    //[3]替换:传入三个参数,第一个表示起始位置,第二个表示从起始位置起删除的元素个数,第三个则是要替换的元素arr.splice(2,1,9);  //[3]插入:传入三个参数,第一个表示起始位置,第二个表示从起始位置起删除的元素个数(此处为0),第三个则是要插入的元素arr.splice(2,0,10,11);  //[]PS:Array.prototype.splice()会影响原数组,返回一个删除的元素数组 迭代方法:Array.prototype.forEach():对数组的每一项运行给定函数,不返回值Array.prototype.map():对数组的每一项运行给定函数,返回运行结果所组成的数组Array.prototype.filter():对数组的每一项运行给定函数,返回运行结果为true所组成的数组Array.prototype.every():对数组的每一项运行给定函数,当所有运行结果为true时才返回trueArray.prototype.some():对数组的每一项运行给定函数,当有运行结果为true时才返回true 归并方法:Array.prototype.reduce():从左到右对数组进行依次累积操作,返回最后的运行结果,如:求数组的累加var arr = [1,2,3];arr.reduce(function(x,y,index,arr){     return x + y;});Array.prototype.reduceRight():从右到左对数组进行依次累积操作,返回最后的运行结果var arr = [1,2,3];arr.reduceRight(function(x,y,index,arr){     return x + y;}); 查找方法:Array.prototype.indexOf():两个参数,第一个表示查找的元素,第二个表示查找的起点位置Array.prototype.lastIndexOf():两个参数,第一个表示查找的元素,第二个表示查找的起点位置

    查看全部

举报

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

微信扫码,参与3人拼团

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

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