眼看已入坑三个月,阿姨头发已经掉一地了~看来已正式加入谢顶大部队…… But!脱发也阻止不了阿姨在前端学习这条神秘又刺激的道路在前进! 话说毕业已经一年了,大学虽学的是信息管理专业,也算与计算机搭点边,但大学嘛,你懂的,那时年少无知,参加了一堆社团和活动,也拿了不少奖,但就是没意识到专业课的重要性,几乎就是学了个半吊子,虽没挂过课,但每次编程相关专业课考试前就指望着老师“划个重点”,然后就把大题当英语课文给背了下来,每次Java等那些课的考试简直就是变相英语作文默写啊~(来自文科生的强大背诵默写技能)。直到实习找工作才意识到自己荒度的几年大学时光,无奈之下只能强行转行,做了一年的新媒体运营,可别提了,都说运营门槛低,干了一段时间才发现简直了,文案是你,P图也是你,视频剪辑还是你,偶尔还得充当客服专员``````告辞!经深思熟虑,还是毅然决然得辞职了,不留下一片云彩~ 带着对前端学习的那份执念,9月正式走上了程序猿的脱发之旅。其实一开始我也有尝试过自学,但发现效率太低,还容易走弯路,遇到问题也没有人可以求助,只能靠度娘,太累了~虽计算了下成本有点心绞痛,但后来还是决定报了培训班。 来到黑马果然没有让我失望,这边的教学与管理还是挺靠谱的,几个月来让我感觉仿佛又回到了高三为了梦想拼命学习的时候,学习习惯的养成对今后工作也是会有一定帮助与影响的,天道酬勤,希望这半年时间,可以不负自己当初那份执念~ 下面是这段时间总结的一些易错知识点:
面向对象的特性:★ 1、封装性 2、继承性 3、多态性 注意: (1) 通过class 关键字创建类, 类名习惯性定义首字母大写; (2) 类里面有个constructor 函数,可以接收传递过来的参数,同时返回实例对象,class类里面的函数不需要加function; (3) constructor 函数 只要 new 生成实例时,就会自动调用这个函数(不生成实例上面的代码是不执行的), 如果我们不写这个函数,类也会自动生成这个函数 (4) 生成实例 new 这个步骤不能省略,只要一new完 立即执行constructor中的代码;生成实例 new 不能省略 (5)创建类时 类名后面不要加小括号, 用new生成实例时 类名后面加小括号 (6)类里面的共有的属性和方法一定要加this使用. 注意: - 每一个由构造函数创建出来的实例有原型__proto__本质也是一个对象 - 构造函数的原型和实例的原型指向的是同一个对象 Star.prototype === ldh.__proto__ call、apply、bind三者的异同 共同点 : 都可以改变this指向 不同点: call 和 apply 会调用函数立即执行, 并且改变函数内部this指向. call 和 apply传递的参数不一样,call传递参数使用逗号隔开,apply使用数组传递 bind 不会调用函数, 可以改变函数内部this指向. 应用场景 call 做继承时常用. apply经常跟数组有关系. 比如借助于数学对象实现数组最大值最小值 bind 不调用函数,但是还想改变this指向. 比如改变定时器内部的this指向. 注意: 1、let不允许重复声明重复的变量名,不能重新赋值 2、let可以只声明不赋值 3、若要使用let,不可以先赋值再定义
let、const、var 的区别 使用 var 声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象 使用 let 声明的变量,其作用域为该语句所在的代码块内,不存在变量提升 使用 const 声明的是常量,在后面出现的代码中不能再修改该常量的值(如函数名) startsWith():表示参数字符串是否在原字符串的头部,返回布尔值(只要带有在开头的那个字符都是true) endsWith():表示参数字符串是否在原字符串的尾部,返回布尔值(只要带有在结尾的那个字符都是true) 如果子类想要继承父类的方法,同时在自己内部扩展自己的方法,利用super调用父类的构造函数,super() 必须写在constructor里面并且在子类this之前调用 若子类在调用父类的方法时没有涉及到参数,可以直接调用不需要使用super 实例对象都会有一个属性 __proto__ 指向构造函数的 prototype 原型对象,之所以我们对象可以使用构造函数 prototype 原型对象的属性和方法,就是因为对象有 __proto__ 原型的存在。
__proto__对象原型和原型对象 prototype 是等价的
__proto__对象原型的意义就在于为对象的查找机制提供一个方向,或者说一条路线,但是它是一个非标准属性,因此实际开发中,不可以使用这个属性,它只是内部指向原型对象 prototype
|