前端试题(一)

2020-03-28 金卡智能

*1. 脚手架 vue-cli现在用的什么版本,2版本了解多少,2 3有什么区别

绝对路径与相对路径

./ 当前路径
…/父路径
/ 绝对路径
某文件里引用其他路径下的资源:
判断该文件所在文件夹与其他资源路径间的关系。


什么?错过了Vue CLI 2!你还要错过Vue CLI3?
区别写得很详细
全局安装一个桥接工具

Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供:
通过 @vue/cli 搭建交互式的项目脚手架。
通过 @vue/cli + @vue/cli-service-global 快速开始零配置原型开发。
一个运行时依赖 (@vue/cli-service),该依赖:
可升级;
基于 webpack 构建,并带有合理的默认配置;
可以通过项目内的配置文件进行配置;
可以通过插件进行扩展。
一个丰富的官方插件集合,集成了前端生态中最好的工具。
一套完全图形化的创建和管理 Vue.js 项目的用户界面。

商品管理用的vue-cli2bulid config vue-cli init webpack name  (init是vue3版本前的指令)webpack-dev-server...--inline:启动inline模式来自动刷新页面
Vue-cli3.0于2018.8.11日正式发布
public src
vue create name  (create是vue3版本才能用的指令)
vue-config.js修改webpack的配置 
vue-cli-service serve  | npm run serve

vue-cli3.0默认项目目录与2.0的相比,更精简:
1.移除的配置文件根目录下的,build和config等目录,
2.移除了static文件夹,新增了public文件夹,并且index.html移动到public中。
3.在src文件夹中新增了views文件夹,用于分类 试图组件 和 公共组件 。
4.大部分配置 都集成到 vue.config.js这里,在项目根目录下

1 安装
2 目录 配置文件
3 运行
4 cli插件 @vue/cli-plugin-
在这里插入图片描述

*2.怎么存储静态资源

  1. 用绝对路径 使用相对路径引入的静态资源文件,会被webpack处理解析为模块依赖
  2. 且放在public文件夹下 public文件夹下的文件并不会被Webpack处理:它们会直接被复制到最终的打包目录

vue-cli2 版本

1) static – 不打包,直接上传(引入的第三方的资源文件(已经经过处理)我们不再需要处理,直接上传)
2) src/assets – 会被打包(压缩体积,代码格式化,上传至服务器 => 将项目中template需要的样式文件、js文件等都可以放置在assets中,打包减少体积。)
config/index.js

module.exports = {// ...build: {assetsPublicPath: '/',assetsSubDirectory: 'static'}
}

注意:如果把图片放在assets与static中,html页面可以使用;但在动态绑定中,assets路径的图片会加载失败,因为webpack使用的是commenJS规范,必须使用require才可以,具体代码如下:

  <div id="hook"><h3>演示钩子的组件</h3><p>直接使用路径</p><img src="../../assets/11.png" alt="图片加载失败" title="assets中的图片"><img src="../../../static/11.png" alt="图片加载失败" title="static中的图片"><br><p>动态绑定路径</p><img :src="assetsURL" alt="图片加载失败" title="assets中的图片"><img :src="staticURL" alt="图片加载失败" title="static中的图片"></div>
data (){return {assetsURL: require('../../assets/11.png'),staticURL: '../../../static/11.png'}}

在这里插入图片描述

vue-cli3 版本

1)public不打包(个人理解相当于2版本static)
2) src/assets

资源打包

  • webpack处理静态资源:在所有的*.vue文件中你所有的templates 和CSS 都被vue-html-loadercss-loader 查询资源的URLs解析. 比如说, 在 img src=”./logo.png” 和background: url(./logo.png) 中./logo.png是一个相对资源路径,并且会被Webpack视为一个模块依赖来解析。
  • 因为./logo.png并非一个Javascript,当将它作为模块依赖对待时,我们需要用url-loaderfile-loader去处理它。

webpack 中的解析规则

webpack中文文档

  • 相对URLs,
    例如 ./assets/logo.png 将会被解释为一个模块依赖.
    它们将会被替换为基于你Webpack输出配置自动生成的 URL
  • 无前缀URLs,
    例如. assets/logo.png 将会被像相对URLs一样处理并将被转化./assets/logo.png. 我在实际操作中,不加./会报错,会当做模块去查找,如果起了别名@/xx/xx.png正常,给assets直接取别名也无法加载图片。而大多在项目中加载图片,都是用import的方法,并不直接src=字符串
  • 带~前缀的URLs 将会被看做模块请求, 类似于请求(‘some-module/image.png’).
    如果你想改变Webpack的模块解决配置你需要使用这个前缀 。例如,你需要处理资源的别名,你需要使用 ~assets/logo.png去确保这个别名时受到重视的.
  • 特权相对URLs(绝对路径,/开头),
    例如 /assets/logo.png 是完全不作处理的.

最后

假如说,你把index.html以及static文件夹直接放到容器的根目录,即访问路径为:http://xxxx:9090/index.html这样形式,那么直接使用‘/’即可,不用使用相对路径。

但是如果说你的前端项目是在某个项目文件夹下或者合并到后台项目中去发布,即访问路径可能为:http://xxx:9090/projectname/index.html,那么就一定要使用’./’,否则资源信息会找不到。

另外:放在static下的图片,在编码开发的时候直接使用相对路径即可,和assetsPublicPath配置为相对路径或绝对路径没有任何关系。这点不要混淆。

*3.多入口

vue-cli3多环境多入口,分别打包

http://localhost:8081/ui.html
http://localhost:8081/index.html

会有2个main.js,2个router.js
都是 双份的
需要配置vue.config.js

let objectProject = {index: {entry: 'src/views/index/main.js', // page 的入口template: 'src/public/index.html', // 模板来源filename: 'index.html', // 在 dist/index.html 的输出// 当使用 title 选项时,template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>title: 'Index Page',// 在这个页面中包含的块,默认情况下会包含,提取出来的通用 chunk 和 vendor chunk。chunks: ['chunk-vendors', 'chunk-common', 'index']},ui: {entry: 'src/views/ui/main.js',template: 'src/public/ui.html',filename: 'ui.html',title: 'Index Page',chunks: ['chunk-vendors', 'chunk-common', 'ui']}
}
let page = {}
let projectname = process.argv[3] // 获取执行哪个文件
if (process.env.NODE_ENV == 'development') {page = objectProject
} else {page[projectname] = objectProject[projectname]
}
module.exports = {publicPath: './', // 官方要求修改路径在这里做更改,默认是根目录下,可以自行配置outputDir: 'dist'+projectname, //标识是打包哪个文件//默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存。如果你无法使用 Vue CLI 生成的 index HTML,你可以通过将这个选项设为 false 来关闭文件名哈希。filenameHashing: true,pages: page,productionSourceMap: false,// 生产环境 sourceMapdevServer: {open: true, // 项目构建成功之后,自动弹出页面host: 'localhost', // 主机名,也可以127.0.0.0 || 做真机测试时候0.0.0.0port: 8081, // 端口号,默认8080https: false, // 协议hotOnly: false // 没啥效果,热模块,webpack已经做好了}
}

他说入口是public?

4 .BFC(5个要点)

  1. 根元素或其它包含它的元素
  2. 浮动绝对定位(absoluted或者fixed)
  3. 内联块display: inline-block (一共三个)
  4. 表格单元格display: table-cell
  5. display:flex
  6. overflow非visible
    什么是BFC?看这一篇就够了

5.call和apply的区别(反性)

如果使用apply或call方法,那么this指向他们的第一个参数,apply的第二个参数是一个参数数组,call的第二个及其以后的参数都是数组里面的元素。会立即调用。而bind返回函数,不会立即调用。

var  numbers = [5, 458 , 120 , -215 ]
Math.max.apply(null, numbers)

看MDN Math.max()的参数是一组数值(把数写进去,不能直接传数组)
有几个例子比较深了没看下去

6.Localstorage和sessionstorage的区别

  1. 均只能存储字符串类型的对象
  2. 生命周期不同:
  • localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。
  • sessionStorage生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了。
  1. 共享
  • 不同浏览器(× ×)无法共享localStorage或sessionStorage中的信息。
  • 相同浏览器的不同页面间可以共享相同的 localStorage(页面属于相同域名和端口)但是不同页面或标签页间无法共享sessionStorage的信息。(√ ×)
  • 如果一个标签页包含多个iframe标签且他们属于同源页面,那么他们之间是可以共享sessionStorage的。(√ √)

7.数组遍历的区别:forEach map filter 返回值(find、some、every)

函数操作返回值
forEach遍历数组,length次,无法break无返回值,return控制跳出当前循环执行
map同上新数组执行
filter判断为true的元素 组成的新数组筛选
includes判断数组是否含有某值,不用return,不用回调true或false筛选
find输出的是一旦 判断为true 则跳出循环输出符合条件的那个数组元素筛选
findIndex输出的是一旦 判断为true 则跳出循环输出符合条件的那个数组元素下标筛选
some判断为true则马上跳出循环并return成true判断
every判断
reduce利用前遍历操作的结果到下一次遍历使用,重复叠加使用下去sum或者新数组

MDN内置对象

8.Reduce 作用 返回值

*9.ES6

阮一峰ES6
罗列出平时用到的哪些是es6语法

  • 变量声明 var let const
  • 模板字符串``

**10.var与(let、const)的区别 要完整

  1. 挂载在window上| 后者不能this.
  2. 变量提升 undefined还是报错
  3. 块作用域
  4. 重复声明:同一作用域下let和const不能声明同名变量,而var可以(重复赋值)

let

  • 模仿私有成员:在处理构造函数的时候,可以通过let声明而不是闭包来创建一个或多个私有成员。
  • 暂存死区 :let和const都适用
  • switch语句
let x = 1;
switch(x) {case 0:let foo;break;case 1:let foo; // SyntaxError for redeclaration.break;
}

下面是对的写法:

let x = 1;switch(x) {case 0: {let foo;break;}  case 1: {let foo;break;}
}

由于词法作用域,表达式(foo + 55)内的标识符foo被认为是if块的foo变量,而不是值为33的块外面的变量foo。

function test(){var foo = 33;{let foo = (foo + 55); // ReferenceError}
}
test();

在以下情况下,这种现象可能会使您感到困惑。 let n of n.a已经在for循环块的私有范围内。因此,标识符n.a被解析为位于指令本身(“let n”)中的“ n”对象的属性“ a”。
在没有执行到它的初始化语句之前,它仍旧存在于暂存死区中。

function go(n) {// n here is defined!console.log(n); // Object {a: [1,2,3]}for (let n of n.a) { // ReferenceErrorconsole.log(n);}
}go({a: [1, 2, 3]});
var a = 100;if(1){a = 10;//在当前块作用域中存在a使用let/const声明的情况下,给a赋值10时,只会在当前作用域找变量a,// 而这时,还未到声明时候,所以控制台Error:a is not definedlet a = 1;
}

const常量

  • 一旦声明必须赋值,不能使用null占位。
  • 声明后不能再修改

  • 如果声明的是复合类型数据,可以修改其属性

const a = 100; 
const list = [];
list[0] = 10;
console.log(list);  // [10]const obj = {a:100};
obj.name = 'apple';
obj.a = 10000;
console.log(obj);  // {a:10000,name:'apple'}

*11.模板字符串 ``

vue {{}} 叫插值表达式、 mustache模板语言 – 相关 模板引擎
模板字符串 ``

  • 可以当作普通字符串使用
  • 定义多行字符串
  • 字符串中嵌入变量

*12.模板字符串中怎么表示变量

// 字符串中嵌入变量
var name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`   // Hello Bob, how are you today?
  • 大括号内可以放入任意的JavaScript表达式,可以进行运算,以及引入对象属性
  • 模板字符串之中还可以调用函数
  • 如果模板字符串中的变量没有声明,则会报错
  • String.raw方法用来充当模板字符串的处理函数,返回一个除表达式和变量会被替换,其它都保持原样的字符串。
String.raw`Hi\n${2+3}!`;
// "Hi\n5!"
String.raw`Hi\u000A!`;
// "Hi\u000A!"

13.箭头函数里的this 指向

ES6箭头函数里this的指向就是上下文里对象this指向,偶尔没有上下文对象,this就指向window

14.Object. keys

// simple array
var arr = ['a', 'b', 'c'];
console.log(Object.keys(arr)); // console: ['0', '1', '2']// array like object
var obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.keys(obj)); // console: ['0', '1', '2']// array like object with random key ordering
var anObj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.keys(anObj)); // console: ['2', '7', '100']

15.V-if v-show 区别 相当于css中的

*16.V-for的key有什么用

关键词:
虚拟DOM的Diff算法 vue实现了一套虚拟DOM,使我们可以不直接操作DOM元素,只操作数据便可以重新渲染页面 ``高效的更新虚拟DOM`
Vue2.0 v-for 中 :key 到底有什么用?

**17.16:06页面切换回来的时候,查询过的表不用再查。求 vue中如何保存组件的状态,进行缓存,切换的时候#? 输出的

**18.Vue中怎么跨域

配置代理方式
关键词:配置代理

1. 后台更改header

header('Access-Control-Allow-Origin:*');//允许所有来源访问 
header('Access-Control-Allow-Method:POST,GET');//允许访问的方式 

2. 使用JQuery提供的jsonp

ethods: { getData () { var self = this $.ajax({ url: 'http://f.apiplus.cn/bj11x5.json', type: 'GET', dataType: 'JSONP', success: function (res) { self.data = res.data.slice(0, 3) self.opencode = res.data[0].opencode.split(',') } }) } 
} 

3. 使用http-proxy-middleware 代理解决(项目使用vue-cli脚手架搭建)

proxyTable: { '/api': {  //使用"/api"来代替"http://f.apiplus.c" target: 'http://f.apiplus.cn', //源地址 changeOrigin: true, //改变源 pathRewrite: { '^/api': 'http://f.apiplus.cn' //路径重写 } } 
}

4. axios跨域,依然是配置了代理

  1. 配置BaseUrl
    在main.js中,配置下我们访问的Url前缀:
axios.defaults.baseURL = '/api' // 开发本地代理
axios.defaults.headers.post['Contenst-Type'] = 'application/json;'
axios.defaults.headers.common['token'] = store.state.token
  1. 配置代理
    修改config文件夹下的index.js文件,在proxyTable中加上如下代码:
    proxyTable: {'/api': {  //代理地址target: 'http://xxx.xxx.xxx.xxx:8088',  //需要代理的地址, 实际生产环境需要访问的地址changeOrigin: true,  //是否跨域secure: false,pathRewrite: {'^/api': '/'   //本身的接口地址没有 '/api' 这种通用前缀,所以要rewrite,如果本身有则去掉}}},
  1. 修改请求Url
    this.$axios.get("/test/test123") .then(res=>{console.log(res)}).catch(err=>{console.log(err)})

给url加上了前缀/api,我们访问"/test/test123"就当于访问了:localhost:8080/api/test/test123

**19.header谁处理的?17:54 后端

**20.发请求到响应的过程

一个完整的http请求响应过程

21.vuex用过吗

**22.Vuex怎么获取数据

获取vuex中的数据一般写在computed(计算)中<script>import { mapState, mapMutations } from 'vuex';export default {// computed: mapState({//     第一种接受数据方法//     // hhh: state => state.num,//     第二种接受数据方法//     // zxd : 'num'//     第三种接受数据方法//     countPlusLocalState(state){//         return state.num + 100//     }// }),//第四种接收数据的方法computed:mapState(['num']),//第五种接收数据的方法// computed:{//     ...mapState(['num']),//     he(){//         return 'hhehehe'//     }// },name: "user",methods:{...mapMutations(['add','del'])},
</script>

**23.Mutation 和action区别: 异步

1、流程顺序

“相应视图—>修改State”拆分成两部分,视图触发Action,Action再触发Mutation。

2、角色定位

基于流程顺序,二者扮演不同的角色。

Mutation:专注于修改State,理论上是修改State的唯一途径。

Action:业务代码、异步请求。

3、限制

角色不同,二者有不同的限制。

Mutation:必须同步执行。

Action:可以异步,但不能直接操作State。

24.Getter 的作用 – 可以认为是store的计算属性

[Vuex系列] - Vuex中的getter的用法

*25.vue里怎么阻止冒泡

  • . stop:阻止冒泡(通俗讲就是阻止事件向上级DOM元素传递)
  • . prevent:阻止默认事件的发生
  • . capture:捕获冒泡,即有冒泡发生时,有该修饰符的dom元素会先执行,如果有多个,从外到内依次执行,然后再按自 然顺序执行触发的事件
  • . self:将事件绑定到自身,只有自身才能触发,通常用于避免冒泡事件的影响
  • . once:设置事件只能触发一次,比如按钮的点击等

**26.21.55 axios异步请求,如果同时发多个请求,让他们全部返回以后再进行处理,是怎么操作的

this.$axios.all([this.$axios.get(url).then(res => res.data),this.$axios.get(url).then(res => res.data)]).then(this.$axios.spread((val1,val2) => {// val 是数组中每个接口返回的值 res.dataconsole.log('两个接口全部加载完成',val1,val2) ;  // 1,2})).catch(err => {console.log(err) ;})
=

*27.Axios get请求post请求参数

get:params

params:{id:this.kemuid},
headers:{token:Cookies.get('token'), platform: 'web'}

post:对象

 {'queslistid':this.kemuid},{headers: {'token':Cookies.get('token'),'platform': 'web'}
}

*28.axios如何实现一个请求的拦截 24.48

**29.Axios回调函数作用. Then 和catch 什么时候执行catch

Promise对象——then()和catch()方法

30.Baseurl

*31.Timeout

axios超时timeout拦截

32.Vue以外其他框架

33.框架除了elementUI

*34.ElemuentUI解释栅格布局实现原理 26.10

Element UI Layout源码解析

**35.vue子组件之间直接怎么通信 25.27

bus数据通信
Vue 兄弟组件之间的通信
https://www.cnblogs.com/fundebug/p/10884896.html

**36.表单组件绑定的model值

**37.前端控制用户对页面的访问权限

前端权限控制

**38.Echarts如何把分割线去掉

yAxis : [{type : 'value',name:'电量(kWh)',axisLine:{show:false},axisTick:{show:false},splitLine:{show:false}}]splitLine对应2,axisTick对应1.

**39.路由两类:hash和history的区别

前端路由的两种模式:hash模式和 history模式

40.只需要1个div

在这里插入图片描述

<style>div{height: 100px;width: 100px;border-radius: 100px;position: absolute;top: 40%;left: 40%;border: solid 10px purple;box-shadow: 0px 0px 0px 10px red,0px 0px 0px 10px black inset;background: gray;}div::after{content:' ';background-color: yellow; border-radius: 100px;display: block;z-index: -1;position: relative; left: -30px;top: -30px;width: 160px;height: 160px;}div::before{content:' ';background-color: green; border-radius: 100px;display: block;z-index: -2;position: absolute; left: -40px;top: -40px; width: 180px;height: 180px;}</style><div></div>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251317.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html5 --- 利用localStorage进行本地存储

首先做一个提交到本地存储的表单及一个用来显示本地localStorage信息的表格…代码如下: <h2> 本地存储用 </h2>标题: <input id"title" name"title" type"text" size"60" style"margin-left:32px;margin-bottom:…

前端试题(二)

1. 数组方法、reduce()的第二个参数 reduce() MDN文档 accumulator 累计器currentValue 当前值currentIndex 当前索引array 数组 在没有初始值的空数组上调用 reduce 将报错&#xff08;如果有initialValue不报错&#xff09;。回调函数第一次执行时&#xff0c;accumulator…

项目中遇到问题的解决方法合集

以下内容主要是为了方便记录自己在工作中遇到的项目问题搜寻到的解决方法&#xff0c;肯定方法不唯一&#xff0c;这里只是给出解决了我的问题的方法&#xff0c;大家走过路过随便瞧瞧较好啦嘻嘻 1、使用vue/cli 4.x 创建vue项目时使用iconfont 图标无法显示——前者版本问题 …

html5 --- IDBDatabase创建对象存储和索引

代码如下: <!DOCTYPE html> <html> <head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><title> CRUD操作 </title><style type"text/css">table{width: 830px;border: 1px …

2019大疆PC软件开发笔试——开关和灯泡两个电路板

题目描述: 小A是一名DIY爱好者&#xff0c;经常制作一些有趣的东西。 今天&#xff0c;小A突然想要来做这样一个东西。小A现在有两块同样大小为nm&#xff0c;有nm块大小为11小电路板拼成的矩形电路板&#xff0c;假设叫做电路板A和电路板B。电路板A上每个小电路板都是一个开关…

2019高校微信小程序开发大赛获奖作品——《brain头脑智序》

目录 前言 交互流程说明图 我的任务 登录授权&#xff08;login&#xff09; 首页&#xff08;tababr分析&#xff09; 房间准备区&#xff08;preparing&#xff09; 便签编辑区 最终方案选择&#xff08;房主权限&#xff09; 会议报告页面&#xff08;report&#…

前端试题(三)

1. js继承的7种方式 回顾&#xff1a; 每个构造函数都有一个原型对象&#xff1b;原型对象都包含一个指向构造函数的指针&#xff1b;实例都包含一个指向原型对象的内部指针&#xff1b;一切皆为对象&#xff0c;只要是对象&#xff0c;就会有 proto 属性&#xff0c;该属性存…

享元模式 - 结构型模式

模式类型&#xff1a; Flyweight 享元模式 - 结构型模式 意图&#xff1a; The intent of this pattern is to use sharing to support a large number of objects that have part of their internal state in common where the other part of state can vary. 运用共享…

前端试题(四)

1. vue过滤器使用场景 2. v-on绑定多个方法 <p v-on"{click:dbClick,mousemove:MouseClick}"></p>一个事件绑定多个函数&#xff1a; <p click"one(),two()">点击</p>3. 在菜单结构不确定时&#xff0c;前端如何动态渲染 树形…

Mysql - 安装与配置

1、下载安装包 > https://www.mysql.com/downloads/ 2、双击安装&#xff0c;点击Install MySQL Products > 3、Skip 打钩&#xff0c;Next下一步 > 4、选择Server only&#xff1a;只选择安装服务端&#xff0c;根据个人喜好更改安装路径和数据保存路径…

廖雪峰git教程学习

廖雪峰git教程 git – Linus在2周内用c写的 1.1 基本概念 版本控制系统&#xff0c;追踪文本文件的改动&#xff0c;文件、视频等二进制文件则不可追踪&#xff08;微软的word也是二进制文件&#xff09;HEAD 指向当前分支&#xff0c;表示当前版本&#xff08;最新的提交&am…

前端后台管理系统梳理

再梳理一遍 一、商品后台管理系统 1. 功能 1.1 服务端情况 开启了CORS跨域支持需要授权的 API &#xff0c;必须在请求头中使用 Authorization 字段提供token 令牌&#xff08;axios拦截器&#xff09;baseUrl&#xff0c;接口地址&#xff1a;http://localhost:8888/api/…

构造器执行顺序

转载于:https://www.cnblogs.com/a6948076/p/8045801.html

Java08-java语法基础(七)构造方法

Java08-java语法基础&#xff08;七&#xff09;构造方法 一、构造方法 1、什么是构造方法&#xff1f; 构造方法&#xff08;类方法&#xff09;是一个方法名和类名相容的特殊的成员方法。 2、构造方法的作用&#xff1f; 当使用new关键字创建一个对象时&#xff0c;为新建对象…

安装mysql8.0.20,报错“找不到VCRUNTIME140_1.dll”

写在最前&#xff0c;指令集合 以管理员身份运行cmd mysql -uroot -p 【进入】mysql mysql > exit 【退出】 net stop mysql 【暂停】 net start mysql 【启动】 mysql -u root -p&#xff08;命令后输入临时密码&#xff0c;进入mysql&#xff09; ALTER USER USER() …

使用mockjs模拟数据

一、安装 简单粗暴 npm install mockjs 二、引入 CommonJS引入 let Mock require(mockjs) let userInfo Mock.mock({data: {responseCode: 200,responseMessage: success,userMessage: {name: "cname",email: "email",msg: cparagraph(2)}} })或者ES…

lodash源码分析之compact中的遍历

小时候&#xff0c; 乡愁是一枚小小的邮票&#xff0c; 我在这头&#xff0c; 母亲在那头。 长大后&#xff0c;乡愁是一张窄窄的船票&#xff0c; 我在这头&#xff0c; 新娘在那头。 后来啊&#xff0c; 乡愁是一方矮矮的坟墓&#xff0c; 我在外头&#xff0c; 母亲在里头。…

[HAOI2008]移动玩具

这又是一道神奇的搜索题。。。只要记录每种状态。。。然后暴力判断这种状态往后一步的情况。。。 广搜出最优解即可。。。 呆码&#xff1a; #include<iostream> #include<cstdio> #include<queue> #include<cstring> using namespace std;int dx[5]{0…

div设置overflow-scroll滚动之后,jq获取其子元素的offset.top出现问题。

先上个图&#xff1a; 布局很简单&#xff0c;左右超过屏幕的部分自行滚动。 1. html <div class"ce-container"><div class"ce-leftBox">//左边的内容</div><div class"ce-rightBox">//右边的内容 </div…

javascript --- 利用Sortable实现一个可视化公式编辑器

Sortable的依赖引入和简单使用参见:https://blog.csdn.net/piano9425/article/details/90437182 先简单的介绍一下可视化公式编辑器的功能(样式没有调,毕竟每个人的需求都不一样): 首先会有2个需要计算的(我称为操作数)A_XiangRaoZuWenSheng和AYKZQ_CS,以及两个操作符ADD(加法…