前端小白找工作日记(4)

一、原型
①所有引用类型都有一个__proto__(隐式原型)属性,属性值是一个普通的对象
②所有函数都有一个prototype(原型)属性,属性值是一个普通的对象
③所有引用类型的__proto__属性指向它构造函数的prototype
二、原型链
当访问一个对象的某个属性时,会先在这个对象本身属性上查找,如果没有找到,则会去它的__proto__隐式原型上查找,即它的构造函数的prototype,如果还没有找到就会再在构造函数的prototype的__proto__中查找,这样一层一层向上查找就会形成一个链式结构,我们称为原型链。
TypeOf(null)结果为Object
js底层的数据存储,变量的机器码的低位1-3位存储其类型信息,前三位表示的是数据类型,而null全部的位数是0,object类型前三位是000,所以用typeof判断数据类型的时候被误判是object数据类型,typeof判断对象的数据类型的时候只能判断object和function两种。
instanceof判断数据类型的时候会基于原型链去判断
Object.prototype.toString 是相对来说,判断的最准确的方法
箭头函数的外层如果有普通函数,那么箭头函数的this就是这个外层的普通函数的this,箭头函数的外层如果没有普通函数,那么箭头函数的this就是全局变量。
,在普通函数里this指向调用自己的对象
函数里面如果返回值是对象会改变this指向,如果是基本属性则不影响
ES6的常用特性

1.不一样的变量声明:const let 和 var
const定义常量,let没有变量提升
2.箭头函数最直观的三个特点:不需要function关键字来创建函数, 省略了return关键字,继承了当前上下文的this指向(即this的指向不会发生改变)
3…promise
为了解决回调地狱的问题,ES6中新增了promise,它是一个构造函数,我们可以创建promise的实例 const p = new promise(),new出来的promise实例对象,代表了一个异步操作,promise.propotype上包含一个.then()方法,用来预先指定成功和失败的回调函数。
new Promise(function(resolve,reject){})
4.标签语义化
header,footer,nav,aside,article,section,加入表单元素如email,tel,去除有性能问题的frame
5.video,audio元素的增加
6.Api如geolocation
7.Websocket 服务器端可以主动推送数据到客户端,
8.Webstorage 分为localstorage和sessionstorage,前者永久,后者存活周期为会话时间
作用域链
内部作用域和外部的作用域一层层的链接起来形成作用域链,当在在函数内部要访问一个变量的时候,首先查找自己的内部作用域有没有这个变量,如果没有就到这个对象的原型对象中去查找,还是没有的话,就到该作用域所在的作用域中找,直到到window所在的作用域

Js的继承
原型链继承
当一个发生变化的时候,另外一个也随之进行了变化,这就是使用原型链继承方式的一个缺点。
构造函数继承(借助 call)
只能继承父类的实例属性和方法,不能继承原型属性或者方法
组合继承(前两种组合)
多构造了一次,性能开销大
原型式继承
Object.create 方法,这个方法接收两个参数:一是用作新对象原型的对象、二是为新对象定义额外属性的对象(可选参数)
用 ES6 里的 extends 的语法糖,使用关键词很容易直接实现 JavaScript 的继承

class Person {
  constructor(name) {
    this.name = name
  }
  // 原型方法
  // 即 Person.prototype.getName = function() { }
  // 下面可以简写为 getName() {...}
  getName = function () {
    console.log('Person:', this.name)
  }
}
 
class Gamer extends Person {
  constructor(name, age) {
    // 子类中存在构造函数,则需要在使用“this”之前首先调用 super()。
    super(name)
    this.age = age
  }
}

Get,post区别
GET请求在浏览器刷新或者回退的时候是无害的。POST的话数据会被重新提交。
GET可以被书签收藏,POST不行
GET可以存在缓存中。POST不行
GET 会将数据存在浏览器的历史中,POST不会
GET 编码格式只能用ASCII码,POST没有限制
GET 数据类型urlencode,POST是URLENCODE,form-data
可见性 参数在URL用户可以看见,POST的参数在REQUSET BODY中不会被用户看见
安全性 GET相对不安全 POST相对安全些
Get长度 参数一般限制2048(和WEB服务器相关),post参数无限制。
GET 和POST在请求的时候
GET 是将数据中的hearder 和 data 一起发送给服务端,返回200code
POST 是先将hearder发给服务器返回100continue,再发送data给到服务器,返回200
GET 就发送了一个TCP数据包给服务器而POST发送了两次TCP数据包给服务器
GET和POST是已经有定义好的说明的,最好不要混用。
GET和POST本质上是一样一样的,GET可以加Request Body ,POST也可以在URL中添加参数。实现是可以的。
js上传和下载
上传:
使用ajax,通过formdata传参
使用jquery.form.js
使用form表单上传,通过iframe接收回调
下载:
a 标签形式
window.location.href 直接打开

Vue watch和computed区别
Vue里面设置全局属性
今日份笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值