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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
492人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • js中6型数据类型:弱类型特性 5种原始类型:number(数字)、string(字符串)、boolean(布尔值)、null 、undefined 1种对象类型:object对象(函数function array Date)
    查看全部
  • 先实现原型链继承,再扩展。
    查看全部
  • .join() - 数组成员拼接为字符串,原数组不变 .reverse() - 翻转数组成员,修改原数组 .sort() - 按字符串将数组成员排序,修改原数组 .concat() - 连接两个数组,原数组不变 .slice() - 数组切片,原数组不变 .splice() - 数组剪切和在剪切位置插入成员,修改原数组 .forEach() - 遍历数组,原数组不变 .map() - 数组映射,原数组不变 .filter() - 过滤数组成员,原数组不变 .every()/.some() - 数组成员 全都 / 有一个 满足某条件,原数组不变 .reduce()/.reduceRight() - 将数组成员两两操作,最终得到唯一一个值,原数组不变 .indexOf()/lastIndex() - 从左到右/从右到左搜索实参在数组的索引,不存在则返回-1,原数组不变 Array.isArray() - 判断是否为数组,原数组不变
    查看全部
  • for-in 属性时使用 hasOwnProperty()过滤原型链上的属性
    查看全部
  • 注意: 1.顺序不确定,for - in 中遍历的属性并非一定按定义时的顺序,受引擎的影响 2.enumerable 为 false 时的属性将不会出现 3.for - in 对象属性时受原型链影响,若obj 的原型链上有z属性,在遍历时z 也会出现
    查看全部
  • 通过hasOwnProperty()判断属性到底是 对象上的 还是 对象的原型链上的
    查看全部
  • Obj.isExtensible(obj); obj是否可拓展  返回bool

    Obj.preventExtensions(obj) ;使obj不可拓展,不修改其中属性的属性标签

    Obj.seal(obj);  使obj不可拓展,并修改configurable为false

    Obj.isSealed(obj); 判断是否被seal  返回bool

    Obj.freeze(obj); 使obj不可拓展,并将属性标签全部修改为false

    Obj.isFrozen(obj); 判断是否被freeze  返回bool

    以上方法不会影响原型链

    查看全部
  • 火狐MDN:http://developer.mozilla.org/zh-CN/learn/javascript 《JavaScript权威指南》

    查看全部
  • string/number/boolean三个基本类型有对应包装类型,在把这几个基本类型当作对象使用时,js会创建一个对应的临时包装对象,然后进行操作,操作完毕后会消除临时对象,基本类型依然时基本类型,并无变化。

    查看全部
  • 短小

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

    2018-05-01

  • var str = 'string'

    alert(str.length) // 6

    str.t = 10  // undefined 

    当把一个基础数据类型尝试用对象的方法,  添加属性的时候,  js会尝试先把基础类型转化成对应的基础类型包装对象,  但是当完成这个访问以后 , 这个临时的包装对象就会立即被销毁, 所以str.t的值是undefined

    查看全部
  • 基本类型:var str = "string"; console.log(str); string 对象类型:var strObj = new String("string");console.log(strObj); String {0: "s", 1: "t", 2: "r", 3: "i", 4: "n", 5: "g", length: 6,[[PrimitiveValue]]: "string"} 基本类型不是对象,所以不应该有属性和方法,但是当我们访问str.length=6,同时添加一个属性str.t=10,再次访问时str.t=undefined;同时输出str="string",还是之前赋的值 当尝试把基本类型的str当做对象一样访问时,例如:str.length或者是str.t; 解释器会创建一个临时的包装对象,伪代码:[[tempObj]] = new String(str); [[tempObj]].length; // 返回具体的length;的同时:delete [[tempObj]]; // 销毁临时对象,重复str.length或者是str.t都会重复创建这个临时对象,所以str.t赋值可以成功,但再次访问str.t时就会返回undefined;
    查看全部
  • var a="string"; a.length;//6 a.t=3; alert(a.t);//undefined 当尝试以对象的方式使用一个string/number/boolean基本类型的时候,比如访问这个字符串的length属性或增加一个属性,JavaScript只能把这个基本类型转换成包装类型对象。当设置完成后,这个临时对象会被销毁掉。所以再次访问该属性,就是undefined。
    查看全部
  • 1、因为js文件中提供的并不是都是数组,要仔细看,所以第一步应该判断arr1arr2是否为数组类型,之后判断长度是否相等,最后将arr1,arr2中的每一项的类型存入新的数组。然后为数组排序。最后比较两个数组是否相等。 2、数组的比较不能直接将两个数组进行比较,如:if(array1==array2)这样得到的结果永远是false,若允许数组内容相同顺序不同的话,数组的比较应该先用sort排序,然后将每一项拿来严格等于。 3、因为本题确定每一项都是字符串了所以可以用.toString(),string()的方法将数组变成字符串来比较,如果不能确定每项的类型则不能用这种方法比较。 4、.toString()可以在括号内写入几进制输出如var num = 63;num.toString(8);则将63以八进制输出为字符串,但.toString()无法将null,undefined输出为字符串,而String()可以,但其无法设定输出的进制。 5、X instanceof Function(记住这里F要大写)。
    查看全部
    3 采集 收起 来源:编程练习

    2017-08-08

  • 对象构造: 除了本身被赋予的值之外,对象还有几个隐藏标签: proto:对象的对象属性prototype上的赋值 class:对象的种类 extensible:是否允许该对象继续增加新的属性 另外对象的值(如 x=1),也有对应的属性或方法,提供一些访问权限的控制 writable:是否可写 enumerable:是否能被删除 configurable:是否能够枚举 value:值 get/set:
    查看全部

举报

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

微信扫码,参与3人拼团

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

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