瞎记

92 阅读5分钟

1.vue-cli搭建项目

1.先创建文件夹,点击进入文件夹.按住shift+右击--**此处打开Powershell窗口**
2.使用命令安装--npm install cnpm -g --registry=https://registry.npm.taobao.org
3.全局安装vue-cli--cnpm install -g vue-cli
4.查看vue的版本号--vue -V //注:V是大写字母V
5.进入项目--vue init webpack
6.初始化项目--cnpm install
7.查看package.json--运行项目npm run dev

2.运行项目安装less,和less-loader报错

版本问题,版本太高--先卸载原先版本,在运行
--npm install less@3.0.4 
--npm install less-loader@5.0.0

3.列举判断一个变量是否为数组的几种方法

1.typeOf
2.instanceof检测构造函数的prototype属性是否出现在某个实例对象的原型链
3.constructor--除了undefinednull
4.Array.isArray
5.Object.prototype.toString


4.class通过哪一个关键字实现继承:

extends

5.列举浅拷贝/深拷贝的几种方式:

--浅拷贝
1.object.assign()
2.lodash的_.clone
3.array.prototype.concat()
4.array.prototype.slice()
--深拷贝
1.Json.parse(JSON.stringify())
2.lodash的_.cloneDeep()
3.手写递归

6.请写出原生ajax的几个步骤:

1.创建XMLHttpRequest对象
2.注册回调函数
3.配置请求信息,open(),get,post请求下需求配置请求头信息
4.发送请求,post请求下,要传递的参数放这
5.创建回调函数,取得返回的数据

7.箭头函数和普通函数的区别

-   箭头函数没有`prototype`(原型),所以箭头函数本身没有this
-   箭头函数的this在定义的时候继承自外层第一个普通函数的this。
-   如果箭头函数外层没有普通函数,严格模式和非严格模式下它的this都会指向`window`(全局对象)
-   箭头函数本身的this指向不能改变,但可以修改它要继承的对象的this。
-   箭头函数的this指向全局,使用arguments会报未声明的错误。
-   箭头函数的this指向普通函数时,它的`argumens`继承于该普通函数
-   使用`new`调用箭头函数会报错,因为箭头函数没有`constructor`
-   箭头函数不支持`new.target`
-   箭头函数不支持重命名函数参数,普通函数的函数参数支持重命名
-   箭头函数相对于普通函数语法更简洁优雅

9.instance of 的实现原理

们知道每个 JavaScript 对象均有一个隐式的 `__proto__` 原型属性,
而显式的原型属性是 `prototype`,只有 `Object.prototype.__proto__` 属性
在未修改的情况下为 null 值。根据图上的原理,我们来梳理上面提到的几个有趣的 `instanceof` 使用的例子。

10.字符串转为数组,数组转为字符串

---# 数组转字符串
1.直接以字符串的方式进行拼接
2.toString()
3.join()
---#字符串转为数组
1.如果是单一字符串,可以用遍历赋值
2.有字符间隔的字符串用split()

11.浏览器输入url发生了什么

DNS解析
发起TCP连接
发送HTTP请求
服务器处理请求并返回HTTP报文
浏览器解析渲染页面
连接结束。

12.sass

Sass 扩展了 CSS3,增加了规则、变量、混入、选择器、继承等等特性。Sass 生成良好格式化的 CSS 代码,易于组织和维护。
工程越大,css文件越大,重复代码越来越多,会变得难以维护,借助Sass可以提高写css的效率。

13.webpack (js应用程序的静态模块打包器)

entry: 入口
output: 输出
loader: 模块转换器,用于把模块原内容按照需求转换成新内容
插件(plugins): 扩展插件,在webpack构建流程中的特定时机注入扩展逻辑来改变构建结果或做你想要做的事情

14.vuex

State:驱动应用的数据源(单向数据流)
View:以声明方式将 state 映射到视图(静态显示出来的数据源)
Actions:处理用户在view上面操作而导致的状态变化(数据源变化追踪)
---项目实战

1.项目优化策略
--生成打包报告、第三方库启用CDN,element-ui组件按需加载,路由懒加载
   --首页内容定制

--项目上线相关配置
1.通过node创建web服务器
   创建node项目,并安装express,通过express快速创建web服务器,
   将vue打包生成的dist文件夹,托管为静态资源即可,关键代码如下:

--开启gzip配置:gzip可以减小文件体积,使传输速度更快
--配置https(后端管)
--pm2管理项目--

React

1.什么是高阶组件

1.高阶组件是接受一个组件并放一个新组件的函数。基本上,这是一个模式,是从react的组合特性衍生出来的,称其为纯组件。
使用:--代码重用,逻辑和引导抽象//props处理
  1. React 组件生命周期有哪些不同阶段?
1.lnitial--初始化状态
2.componentwillMount和componentDidMount--react组件已经准备好挂在浏览器DOM3.componentwillUpdate和componentDidUpdate--更新,发送新的props和state状态
4.componentWillUnmount--他用于取消任何网络请求,删除与组件关联的所有事件监听器
5.render、constructor

3.如何获取组件

1.使用refs获取react组件实例
2.使用回调函数
3.使用React.createRef()

5.Hook解决了什么问题

hook 应该是一个函数吧,是有了函数组件的写法之后才有的,我理解是它可以直接声明或者改变一个变量比如说useState,之前的react用的是类组件的写法,要声明一个变量的话得在类的构造函数里面声明?我记得好像是,然后赋值的话也要写this.state什么的,比较麻烦,所以hook应该是简化了好多之前类组件的一些写法吧。hook不仅有声明和赋值,还有useEffect等其他?还有啥我没太了解,useEffect简化了之前类组件写法的生命周期函数,应该是这样的,react我也没深入看过教程,会用而已