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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
493人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • prototype 属性与原型 function Foo(){} 声明构造器 Foo 时, Foo 构造器默认会有 Foo.prototype 属性,Foo.prototype 属性本身也是对象,因此可以叫做“对象属性” 同时,Foo.prototype 默认又会有两个属性 Foo.prototype.constructor 和 Foo.prototype.__proto__ 其中,Foo.prototype.__proto__ 就是 Foo.prototype 的原型 Foo.prototype.__proto__ 又指向 Object 的 prototype 属性,即 Object.prototype Foo.prototype 的作用: 当使用 var obj = new Foo() 生成 Foo 的实例 obj 时,Foo.prototype 对象属性会当作 obj 的原型 obj.__proto__ prototype 属性与原型 __proto__ 的关系: prototype 是构造器(函数对象)上面预置的对象属性,原型 __proto__ 是对象(实例对象)上的原型 对象的原型 __proto__ 指向其构造器的 prototype 属性
    查看全部
    0 采集 收起 来源:概念与继承

    2017-10-29

  • 运算符
    查看全部
  • 判断this的指向(1-4优先级逐级递减,1优先级最高,4优先级最低): 1、函数被new调用,this指向由new新构造出来的这个对象; 2、函数通过call()、apply()、bind()调用,this指向被绑定的对象; 3、函数作为方法被调用,this指向这个对象(即常说的对象上下文); 4、默认(非严格模式)情况下,this指向window, 严格模式下,this指向undefined。
    查看全部
  • 原型属性
    查看全部
  • 原型链
    查看全部
  • 数组求和,取最大、最小值,或者自定义其他逻辑业务运算!
    查看全部
  • var arr = [1, 2, 3]; arr.join(); //将数组转为字符串 -> "1,2,3" 而new Array(n+1).join(str)的原理是,创建一个n+1大小的数组,若用join()方法会 产生含n个“,”的字符串,而str正代替这些“,”以造成重复n次str参数的字符串。 arr.reverse(); //将数组逆序,原数组会被修改 -> [3, 2, 1] arr.sort(); //排序,默认按照字母顺序排序(会把数字转化为字符串排序)原数组会被修改 而如果是数字,则会 取第一位数的字符顺序进行排序,改完以后原数组会被修改。如果想用sort进行数字上的排序,则应写 入函数参数function(a,b){return a-b;},这是升序排列,反之降序是b-a。 arr.concat(4,5,6); arr.concat(4, [5,6]); //数组合并,原数组未被修改 -> [1, 2, 3, 4, 5, 6] arr.slice(1, 2); //截取 返回两个index之间部分数组,左闭右开区间,原数组未被修改 -> [2] /*数组截取拼接(原数组被修改)*/ arr.splice(1); //return [2, 3] 删除 arr; //[1] arr.splice(2, 1); //return [3] 删除 arr; //[1, 2] arr.splice(1, 1, 'a', 'b') //return [2] 删除并新添 arr; //[1, "a", "b", 3]
    查看全部
  • arr.sort(function(a,b)){ return a-b//从小到大排列 return b-a//从大到小排列 }
    查看全部
  • 二维数组
    查看全部
  • js中数组什么类型都可以
    查看全部
  • //自定义json var obj = { x:1, y:2, o:{ x:1, y:2, toJSON:function(){ return this.x+this.y } } } console.log(JSON.stringify(obj)) //{"x":1,"y":2,"o":3}
    查看全部
  • extensible标签 是否可扩展(添加)属性 Object.isExtensible(obj) 检测是否可扩展 默认可扩展 //true Object.preventExtensions(obj) 改为不可扩展(防止扩展) 防止扩展的目的: Object seal(obj) 把对象的所有configurable(可配置)属性改为false Object.isSealed(obj) 判断对象是否被seal(密封) Object.freeze(obj) 冻结对象(不可写writable)writable为false Object.isFrozen(obj) 检测对象是否被冻结 (以上方法不影响对象原型链,可通过Object.prototypeOf 获取原型链然后层层遍历)
    查看全部
  • 属性标签 configurable (是否可配置。可删除) writable(是否可读写)
    查看全部
  • Object.getOwProertyDescriptor(obj,property_name);<br> value: 属性值 writable: 该属性是否可写,可改变<br> enumerable:该属性是否可被枚举,就是可在for in中出现<br> configurable: 该属性的标签是否可改变,是否可用delete将该属性删除。 用defineProperty定义属性时,默认configurable为true,如果设置为false后,该属性不管是什么方式都无法更改。
    查看全部

举报

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

微信扫码,参与3人拼团

微信客服

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

帮助反馈 APP下载

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

公众号

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

友情提示:

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