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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
493人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 4、将数组合并:Array.prototype.concat var arr = [1, 2, 3]; arr.concat(4, 5); // [1, 2, 3, 4, 5] arr; // [1, 2, 3] arr.concat([10, 11], 13); // [1, 2, 3, 10, 11, 13] arr.concat([1, [2, 3]]); // [1, 2, 3, 1, [2, 3]] 备注:concat仅剥离一层数组合并
    查看全部
  • 3、将数组排序:Array.prototype.sort /*sort按照字母顺序排序,原数组被更改*/ var arr = ["a", "d", "c", "b"]; arr.sort(); // ["a", "b", "c", "d"] arr = [13, 24, 51, 3]; arr.sort(); // [13, 24, 3, 51] arr; // [13, 24, 3, 51] /*数组升序排列*/ arr.sort(function(a, b) { return a - b; }); // [3, 13, 24, 51] /*数组降序排列*/ arr.sort(function(a, b) { return b - a; }); //[51, 24, 13, 3] /*对象升序排列*/ arr = [{age : 25}, {age : 39}, {age : 99}]; arr.sort(function(a, b) { return a.age - b.age; }); /*通过foreach遍历看结果*/ arr.forEach(function(item) { console.log('age', item.age); }); // result: // age 25 // age 39 // age 99
    查看全部
  • 2、将数组逆序:Array.prototype.reverse var arr = [1, 2, 3]; arr.reverse(); // [3, 2, 1] arr; // [3, 2, 1] 备注:原数组被更改
    查看全部
  • 新创建的对象指向对象原型链{} => Object.prototype 新创建的数组指向数组原型链[] => Array.prototype
    查看全部
  • 1、将数组转为字符串:Array.prototype.join 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 i = 0, n = 10; var arr = [1, 2, 3, 4, 5]; /*1、for方式:保证顺序*/ for (; i < n; i++) { console.log(arr[i]); // 1, 2, 3, 4, 5 } /*2、for in方式:数组也是对象也有原型链,不保证顺序*/ for(i in arr) { console.log(arr[i]); // 1, 2, 3, 4, 5 } Array.prototype.x = 'inherited'; for(i in arr) { console.log(arr[i]); // 1, 2, 3, 4, 5, inherited } for(i in arr) { if (arr.hasOwnProperty(i)) { console.log(arr[i]); // 1, 2, 3, 4, 5 } }
    查看全部
  • 数组元素增删 1、增加 var arr = []; arr[0] = 1; arr[1] = 2; //在数组尾部增加元素 arr.push(3); arr; // [1, 2, 3] arr[arr.length] = 4; // equal to arr.push(4); arr; // [1, 2, 3, 4] //在数组前面添加元素 arr.unshift(0); arr; // [0, 1, 2, 3, 4]; 2、删除 delete arr[2]; arr; // [0, 1, undefined, 3, 4] arr.length; // 5 2 in arr; // false /*尾部删除*/ arr.length -= 1; arr; // [0, 1, undefined, 3, 4], 4 is removed /*尾部删除*/ arr.pop(); // 3 returned by pop arr; // [0, 1, undefined], 3 is removed /*头部删除*/ arr.shift(); // 0 returned by shift arr; // [1, undefined] 备注:Js中数组是动态的,无需指定大小
    查看全部
  • 数组元素读写 var arr = [1, 2, 3, 4, 5]; arr[1]; // 2 arr.length; // 5 arr[5] = 6; arr.length; // 6 delete arr[0]; arr[0]; // undefined arr.length; // 6
    查看全部
  • 创建数组-2、new Array var arr = new Array(); var arrWithLength = new Array(100); // undefined * 100 var arrLikesLiteral = new Array(true, false, null, 1, 2, "hi"); // 等价于[true, false, null, 1, 2, "hi"]; 备注:此方法等价于字面量创建数组,new可以去掉
    查看全部
  • 创建数组---1、字面量 var BAT = ['Alibaba', 'Tencent', 'Baidu']; var students = [{name : 'Bosn', age : 27}, {name : 'Nunnly', age : 3}]; var arr = ['Nunnly', 'is', 'big', 'keng', 'B', 123, true, null]; var arrInArr = [[1, 2], [3, 4, 5]]; var commasArr1 = [1, , 2]; // 1, undefined, 2 var commasArr2 = [,,]; // undefined * 2 备注:数组后面允许有多余的,
    查看全部
  • 数组本质上也是一种对象,是值的有序集合。每个值叫做元素,每个元素在数组中都有数字位置编号,也就是索引。JS中的数组是弱类型的,数组中可以含有不同类型的元素。数组元素甚至可以是对象或其它数组。
    查看全部
  • 其它对象方法: var obj = {x : 1, y : 2}; obj.toString(); // "[object Object]" obj.toString = function() {return this.x + this.y}; "Result " + obj; // "Result 3", by toString +obj; // 3, from toString obj.valueOf = function() {return this.x + this.y + 100;}; +obj; // 103, from valueOf “Result ” + obj; // still “Result 3” 备注:js解释器在valueOf和toString同时存在时,会尝试把对象转换为基本类型,会先用valueOf,如果返回基本类型就用此结果,否则再用toString,如果返回是基本类型就用此结果,不是就报错
    查看全部
  • 序列化-自定义 var obj = { x : 1, y : 2, o : { o1 : 1, o2 : 2, toJSON : function () {//key:toJSON必须这样写 return this.o1 + this.o2; } } }; JSON.stringify(obj); // "{"x":1,"y":2,"o":3}"
    查看全部
  • 序列化: var obj = {x : 1, y : true, z : [1, 2, 3], nullVal : null}; JSON.stringify(obj); // "{"x":1,"y":true,"z":[1,2,3],"nullVal":null}" 1、JavaScript对象转换为JSON字符串 obj = {val : undefined, a : NaN, b : Infinity, c : new Date()}; JSON.stringify(obj); // "{"a":null,"b":null,"c":"2015-01-20T14:15:43.910Z"}" 备注: 1)val : undefined和没有val,用过hasOwnProperty方法返回的结果不不一样,但是在用JSON.stringify方法时,都不会出现在结果集里面的 2)属性值是NaN和Infinity会转化为null, Date()会转化为UTC时间格式 2、JSON字符串转化为JavaScript对象 obj = JSON.parse('{"x" : 1}'); obj.x; // 1
    查看全部
  • extensible标签 var obj = {x : 1, y : 2}; 1、阻止对象扩展新属性 Object.isExtensible(obj); // true Object.preventExtensions(obj);//阻止对象扩展属性,对原有属性没有影响 Object.isExtensible(obj); // false obj.z = 1; obj.z; // undefined, add new property failed Object.getOwnPropertyDescriptor(obj, 'x'); // Object {value: 1, writable: true, enumerable: true, configurable: true} 2、阻止对象扩展新属性、配置属性标签 Object.seal(obj);//在preventExtensions基础上,设置configurable: false Object.getOwnPropertyDescriptor(obj, 'x'); // Object {value: 1, writable: true, enumerable: true, configurable: false} Object.isSealed(obj); // true 3、阻止对象扩展属性、配置属性、写属性标签 Object.freeze(obj); Object.getOwnPropertyDescriptor(obj, 'x'); // Object {value: 1, writable: false, enumerable: true, configurable: false} Object.isFrozen(obj); // true 备注:这些方法只是针对此对象的,如果想对原型链也做类似处理, 用Object.prototype拿到对象的原型,遍历原型链进行类似操作
    查看全部

举报

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

微信扫码,参与3人拼团

微信客服

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

帮助反馈 APP下载

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

公众号

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

友情提示:

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