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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
493人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 创建函数不同方式:常见的函数声明、函数表达式 1、函数声明如下: function add(a,b){ a = +a; b = +b; return a+b; } 2、函数表达式如下: //函数变量表达式 var add = function(a,b){ ... }; //立即执行函数表达式 (function(){ ... })(); //返回 function对象 return function(){ ... }; //匿名式函数表达式 var add = function foo(a,b){ ... }
    查看全部
  • 1、不同调用方式下this指向不同 2、arguments和参数有一定连带关系 3、作用域 4、函数表达式可以用new函数构造器的方式创建函数对象
    查看全部
  • 函数是一块 JS 代码,被定义一次,但可以执行和调用多次。 JS 中的函数也是对象,所以 JS 函数可以像其它对象那样操作和传递,所以我们也常叫 JS 中的函数为函数对象。 平常的函数声明调用function foo(){},foo();若无return语句,则返回undefined。 1、函数体里无return或者return 基本数据类型,函数返回this; 2、如果返回一个对象,将会由这个对象做为new构造器返回值--不理解
    查看全部
  • 函数调用的几种方式 直接调用 foo() 对象方法 o.method() 构造器 new Foo() call/apply/bind func.call(o)
    查看全部
  • 字符串和数组 var str = "hello world"; str.charAt(0); // "h" str[1]; // e Array.prototype.join.call(str, "_"); // "h_e_l_l_o_ _w_o_r_l_d“ 备注:1、字符串不是数组,但是字符串类数组, 可以按照数组的方式访问 2、数组的话直接可以这样 var arr = [1, 2, 3]; arr.join("_"); // "1_2_3"
    查看全部
  • 数组和一般对象比较: 1、相同点:都可以继承;数组是对象,对象不一定是数组;都可以当做对象添加删除属性 2、不同点:数组自动更新length;按索引访问数组常常比访问一般对象属性明显迅速;数组对象继承Array.prototype上的大量数组操作方法
    查看全部
  • 13、判断是否为数组:Array.isArray 注意:此方法是Array构造器上的, 不是数组原型链上的,需要如下使用 1、Array.isArray([]); // true 2、[] instanceof Array; // true 3、({}).toString.apply([]) === '[object Array]'; // true 4、[].constructor === Array; // true 备注:constructor可以被修改,如果是继承的不可以用此方法
    查看全部
  • 12、数组检索:Array.prototype.indexOf&lastIndexOf var arr = [1, 2, 3, 2, 1]; /*从左往右,第1个参数:查找元素, 第2个参数起始位置*/ arr.indexOf(2); // 1 arr.indexOf(99); // -1 arr.indexOf(1, 1); // 4 arr.indexOf(1, -3); // 4 arr.indexOf(2, -1); // -1 /*从右往左,第1个参数:查找元素, 第2个参数起始位置*/ arr.lastIndexOf(2); // 3 arr.lastIndexOf(2, -2); // 3 arr.lastIndexOf(2, -3); // 1
    查看全部
  • 11、数组元素两两做操作,聚合成一个结果:Array.prototype.reduce&reduceRight /*求和*/ var arr = [1, 2, 3]; var sum = arr.reduce(function(x, y) { return x + y }, 0); // 6 arr; //[1, 2, 3] /*求最大值,从左到右*/ arr = [3, 9, 6]; var max = arr.reduce(function(x, y) { console.log(x + "|" + y); return x > y ? x : y; }); // 3|9 // 9|6 max; // 9 /*求最大值,从右到左*/ max = arr.reduceRight(function(x, y) { console.log(x + "|" + y); return x > y ? x : y; }); // 6|9 // 9|3 max; // 9
    查看全部
  • 10、数组判断:Array.prototype.every & some 1、数组中每一个元素都要符合条件 var arr = [1, 2, 3, 4, 5]; arr.every(function(x) { return x < 10; }); // true arr.every(function(x) { return x < 3; }); // false 2、数组中有一个元素符合条件 var arr = [1, 2, 3, 4, 5]; arr.some(function(x) { return x === 3; }); // true arr.some(function(x) { return x === 100; }); // false
    查看全部
  • 9、数组过滤:Array.prototype.filter var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; arr.filter(function(x, index) { return index % 3 === 0 || x >= 8; }); // returns [1, 4, 7, 8, 9, 10] arr; // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    查看全部
  • 8、数组映射:Array.prototype.map 原数组不会被修改 var arr = [1, 2, 3]; arr.map(function(x) { return x + 10; }); // [11, 12, 13] arr; // [1, 2, 3]
    查看全部
  • 7、数组遍历:Array.prototype.forEach forEach开始是ESM5中的,仅支持IE9+以上,不会修改原数组 /*第1个参数:值,第2个参数:索引, 第3个参数:指向数组本身*/ var arr = [1, 2, 3, 4, 5]; arr.forEach(function(x, index, a){ console.log(x + '|' + index + '|' + (a === arr)); }); // 1|0|true // 2|1|true // 3|2|true // 4|3|true // 5|4|true
    查看全部
  • 6、数组拼接:Array.prototype.splice /*删除从某一个位置开始片段*/ var arr = [1, 2, 3, 4, 5]; arr.splice(2); // returns [3, 4, 5] arr; // [1, 2]; /*删除从某一个位置开始的元素个数*/ arr = [1, 2, 3, 4, 5]; arr.splice(2, 2); // returns [3, 4] arr; // [1, 2, 5]; /*删除从某个元素同时添加新元素*/ arr = [1, 2, 3, 4, 5]; arr.splice(1, 1, 'a', 'b'); // returns [2] arr; // [1, "a", "b", 3, 4, 5] 备注: 原数组被改变
    查看全部
  • 5、返回部分数组:Array.prototype.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] 备注: 1、范围区间:左闭右开 2、下标为负值:最后一个元素从-1开始 往左分别是:-1,-2,-3…
    查看全部

举报

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

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

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