Q1:npm 中 install npm包时--save和--save dev 有啥区别 ?
npm install -save moduleName 命令
1. 安装模块到项目node_modules目录下。
2. 会将模块依赖写入dependencies 节点。
3. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
4. 运行npm install --production或者注明NODE_ENV变量值为production时,会自动下载模块到node_modules目录中。
npm install -save-dev moduleName 命令
1. 安装模块到项目node_modules目录下。
2. 会将模块依赖写入devDependencies 节点。
3. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
4. 运行npm install --production或者注明NODE_ENV变量值为production时,不会自动下载模块到node_modules目录中。
devDependencies 节点下的模块是我们在开发时需要用的,比如项目中使用的 gulp ,压缩css、js的模块。这些模块在我们的项目部署后是不需要的,所以我们可以使用 -save-dev 的形式安装。像 express 这些模块是项目运行必备的,应该安装在 dependencies 节点下,所以我们应该使用 -save 的形式安装。
Q2:vue里export和export default有啥区别?
//demo1.js导出 export const str = 'hello world' // 常量 export function fun(a){ // 函数 return a+1 } //demo2.js导入 import { str , fun } from 'demo1' // 使用export的时候使用{}包起来
//demo3.js导出 export default const str = 'hello world' //demo4.js导入 import str from 'demo3' //导入的时候没有花括号
Q3:WeakSet和set的区别
WeakSet的元素只能是引用类型中的对象,且为弱引用,弱引用就是它引用了数据,数据被引用的次数不会增加
在数据被引用次数为0时会被系统检测到,然后回收
还有一点就是无法进行迭代操作
Q4:substr函数(忘记了)
stringObject.substr(start,length)
substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。
Q5 js filter 过滤器的原理
filter()
简单讲filter就是一个数组过滤器(所以只能作用在数组呗),参数接收一个函数,数组的每一项经过函数过滤,返回一个符合过滤条件的新数组
函数接收三个参数:
item (当前遍历的数组项)
i (当前项索引)
arr (调用filter数组本身)
// 需求找到数组内偶数 let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] let newArr = arr.filter((item, i, arr) => { //函数本身返回布尔值,只有当返回值为true时,当前项存入新数组。 return item % 2 == 0 }) console.log(newArr)