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

JavaScript深入浅出

Bosn 资深架构师
难度中级
时长 5小时28分
学习人数
综合评分9.60
493人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 重复符: x*:重复0或多次x,贪婪 x+:重复1或多次x,贪婪 x*?和x+?:分别同x*和x+,非贪婪 x?:重复0~1次 x/y:x或者y x{n}:重复n次x x{n,m}:重复n~m次x,省略m表示重复大于等于n次 【贪婪:匹配尽可能多次,有5个x就绝不只匹配4个; 非贪婪:匹配尽可能少次】
    查看全部
  • 分组符: (...):分组,并记录匹配到的字符 (?:...):分组,但不记录 \<n>:重复<n>次前面的分组
    查看全部
  • 正则范围符号: [...]:...范围内的任一字符 [^...]:不在...范围内的任一字符 ^:开头字符 $:末尾字符 \b:零宽单词边界;反义为\B
    查看全部
  • 正则表达式: /匹配符/ new RegExp(/匹配符/) 基础正则符: .:除换行符以外的任意字符 \d:数字,相当于[0-9];反义为\D \w:数字和字母,相当于[0-9a-zA-Z];反义为\W \s:空白符;反义为\S \:转移字符
    查看全部
  • Json.parse('{"x":1}')
    查看全部
  • 实例——探测器: !function(global){ // 基类 function Base(configs){ if(!(this instanceof Base)) throw new Error("需要用new调用"); this.configs = configs; this.analyze(); } Base.prototype.detect = function(){throw new Error("抽象方法");}; Base.prototype.analyze = function(){...}; // 具体类 function Link(links){ if(!(this instanceof Link)) throw new Error("..."); this.links = links; Base.apply(this, arguments); } // 先继承,再拓展,防覆盖 Link.prototype = Object.create(Base.prototype); Link.prototype.contructor = Link; Link.prototype.detect = function(){...}; //冻结方法,防止被改变,ES5 Object.freeze(Base); Object.freeze(Base.prototype); Object.freeze(Link); Object.freeze(Link.prototype); // 暴露到外层global Object.defineProperties(global,{ Link: {value: Link}, Base: {value: Base} }); }(this)
    查看全部
  • call() 改变当前作用域
    查看全部
  • 关于_proto_
    查看全部
  • 模块化方案: 1、对象(暴露所有模块成员) var mod = { n: 0, f: function(){...} }; 2、立即执行函数(无法访问未return的私有变量) var mod = (function(){ var _n = 0; var f = function(){...}; return {n:_n, f:f}; })(); 3、函数实例(同上) var mod = new function(){ var _n = 0; var f = function(){...}; this.n = _n; this.f = f; };
    查看全部
  • 简单的抽象类: // 定义一个抽象类及其方法 function AbstractClass(){ throw new Error("!"); // 抽象类不可直接调用 } AbstractClass.aaa = function(){...} AbstractClass.bbb = function(){...} // 定义一个具体类,继承抽象类。可另外定义其方法 function Cls(){} Cls.prototype = Object.create(AbstractClass.prototype); Cls.prototype.contructor = Cls;
    查看全部
  • 简单的链式调用: function A(){} A.prototype.add = function(s){ console.log(s); return this; // 返回A的实例,实现链式调用 }
    查看全部
  • 调用基类方法: function A(name) { this.name = name; } A.prototype.mm = function(){}; function B(age) { this.age = age; A.call(this, name); // 调用基类的方法或属性 } B.prototype.mm = function(){ A.prototype.mm.apply(this, arguments); // 调用基类的原型方法或属性 …… }
    查看全部
  • 简单的模拟重载: function a(){ var args = arguments; if(typeof args[0] === "object" && args[0]){ // 对象类型 if(args[0].name) this.name = args[0].name; if(args[0].age) this.age = args[0].age; } else{ // 基本类型 if(args[0]) this.name = args[0]; if(args[1].age) this.age = args[1]; } } // 重载a的toString方法 a.prototype.toString() = function(){ return "name=" + this.name + ",age=" + this.age; };
    查看全部
  • <value> instanceof <Type>: 可识别所有对象类型,不识别原始类型。 基于原型链。 不同window或iframe之间不能用instanceof来检测类型。
    查看全部
    0 采集 收起 来源:instanceof

    2018-03-22

  • JavaScript数据类型:number、string、Boolean、null、undefined、object对象(Function、Aarray、Date...)
    查看全部

举报

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

微信扫码,参与3人拼团

微信客服

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

帮助反馈 APP下载

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

公众号

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

友情提示:

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