1 window.close()
js去退出当前页面是
window.close()
但是它有一个坏处只能退出它打开的页面,不能关闭链接过来的页面
open(location,'_self').close();
这样就可以退出当前页面。
2 svg属性直接加width 和 style的width 不一样
svg的viewBox属性 有4个参数
viewBox="0 0 1120 1000"
分别表示
第一个参数X轴的起点
第二个参数Y轴的起点
第三个参数应该是缩放的意思,反正调后整个比例会发生变化
第四个参数是svg高度,测试后自我感觉是svg的高度
3 angular和vue实现数据绑定原理
他们都调用了ES6中的proxy这个函数,这个函数可以监控你指定的对象内容,比如你指定的对象内容发生变化时,你要让别的数据也发生变化,就要用到proxy这个函数啦,他的写法如下
let ironman = {
name: 'Tony Stark',
sex: 'male',
age: '35'
}
Object.defineProperty(ironman, 'age', {
set (val) {
console.log(`Set age to ${val}`)
return val
}
})
ironman.age = '48';
首先定义了一个对象ironman,他有三个属性,其中一个age,用Object.defineProperty去监控这个对象中的age这个值,如果age发生了变化,就会执行set这个方法,这个方法中有一个虚参是val,这个val,就是你改变之后的值,在控制台中打印出这样一句话`Set age to 48。
1 get()
拦截对象属性的读取
4 object-fit理解
.fill {object-fit:fill;}
.contain{object-fit:contain;}
.cover{object-fit:cover;}
.none{object-fit:none;}
.scale.down{object-fit:scale-down;}
每个属性值的具体含义如下
fill:中文释义“填充”。默认值。替换内容拉伸填满整个content box,不保证保持原有比例。
contain:中文释义“包含”。保持原有尺寸比例。保证替换内容尺寸一定可以在容器里面放得下。因此,此参数可能会在容器中留下空白。
cover:中文释义“覆盖”。保持原有尺寸比例。保证替换内容尺寸一定大于容器尺寸,宽度和高度至少有一个和容器一致。因此,此参数可能会让替换内容(如图片)部分区域不可见。
none:中文释义“无”。保持原有尺寸比例。同时保持替换内容原始尺寸大小。
scale-down:中文释义“降低”。就好像依次设置了none或contain,最终呈现的是尺寸比较小的那个。
5 trim()
js 基本方法 去空格 input = input.trim();
5 node项目移植过来,很有可能运行不了,这时候运行npm rebuild node-sass 命令,(如若不行,则先运行npm install node-sass命令执行)
6 gbk编码格式
很多编辑器打开不了中文,是因为window的编码格式是gbk,而这些编辑器都不支持gbk编码格式,如果要支持的话,要下载插件
7 解析字符串全部中文
lh_str = lh_str.replace(/[^\u4e00-\u9fa5]/gi, "");
new Date() 获取24小时 时间制 toLocaleString('chinese',{hour12:false})
$().trigger("click") 可以让元素模拟click事件。
如果在一个单页面中有一张gif图片,这个图片需要每进入一次,重新渲染一次,可以在这个图片后面跟参数,譬如/static/img/401.089007e.gif?1523957526610 加上当前时间。
11.angular.js 如果数据http请求获取之后,渲染不上去,那就强制渲染数据。apply();
多文件提交时,input有一个multiple属性。
jquery on可以绑定事件 off可以解绑事件
数据库读的时间,很有可能会多加8个小时。因为电脑本身时区的问题。
给父元素添加上transform:translate(0,0),fixed即可根据父容器定位。如果父级元素设置了transfrom属性,position:relative/absolute/fixed会基于此定位。
position:sticky。粘性定位超级棒。mmp Google兼容性都不怎么样
promise.all 同时调取1个方法的时候,会错乱
两个for 比较删除某个字段的时候 第一个for i = 0; 第二个for w = i +1;
node项目管理 pm2 pm2 离线安装教程 https://blog.csdn.net/chenxiao_zhl/article/details/48180193
continue跳过循环 break跳出循环 return返回函数 他们3个作用很大,特别是在算法中
echarts图表 多条折线图 和Y轴数据对不上,问题是数据在叠加,把series里面的stack去掉就好啦
原生JS获取父节点的所有子元素并且进行克隆
map_stateClone = document.getElementById("map_state").getElementsByTagName('*').cloneNode(true);
22.async await 函数 主要也是解决回调地狱的问题
node中get请求拿参数是req.query.id post是req.body.id
vue 根据后台数据绑定class时,多个绑定可以定义变量去实现。
//用来判断紧急程度的状态 用于直接绑定 3 2 1
statusUrgency:{
3:['show-red','紧急'],
2:['show-blue','一般'],
1:['','普通']
}
//模板
:class='statusUrgency[item.region][0]'
25.Vue绑定class :class="{selected:index == tabIndex}" @click="tabNameClick(index)"
new Vue({
el: '#app',
data: {
list: content,
tabIndex:0,
itemIndex:null
},
methods: {
tabNameClick: function(index){
this.tabIndex = index;
},
tabItemClick: function(index){
this.itemIndex = index;
}
}
})
26、浏览器会有缓存,会造成什么后果,比如你删了一张图片,然后又添加了一张和删除图片名字一样的图片,这样就会显示之前的那张图片,解决方法:可以在图片后加一个随机数,数字无意义,也不会产生影响,可以解决浏览器的缓存问题。
原地址:“/images/imgname.jpg";
修改为:"/images/imgname.jpg?"+随机数;
27、vue点击父节点事,事件不执行,在事件后添加修饰器,@click.native(监听根元素的原生事件) ,拿到event对象时,拿到的是点击的这个元素,不是绑定事件的这个元素 let target = event.currentTarget, //获取对应元素的id值 id = target.getAttribute('data-id');
28、html 去掉input 获取焦点时的边框,只需要在为inpu加上style="outline:none;"属性即可去掉边框。
29、vue打包完成,如果设置路由mode: 'history'的话,搭建服务器时会产生问题,解决方法:https://router.vuejs.org/guide/essentials/history-mode.html
30、element el-autocomplete选择输入框,表单验证要改成change
31、百度地图支持https 协议换成https后面添加&s=1即可
script(src='https://api.map.baidu.com/api?v=2.0&ak=VYFhBqYUwcCHwTKs79ekDk1cEnOOvOQK&s=1')
32、weex中宽100%是750px,高100%是1250px。
33、element中el-select组件有直接模糊查询的属性添加‘filterable’即可。el-autocomplete这个组件不光可以用来模糊查询,也可以直接确定不经过查询。
34、element中,input不是原生input,vue的回车是这样监听的 @keyup.enter,但是在element中不同,要这样去写@keyup.enter.native。
35、不一定是代码的问题,几个清除浮动之后,点击清除浮动的元素,后面的元素会跳动。
36、vue 懒路由 依赖 extract-text-webpack-plugin
37、vue传参要引入qs,数据要qs.stringify一下,但是文件不需要!!!
38、element文件上传可以自定义上传使用:http-request
39、...的用法
const a= [1,2,3]
const b = [...a]
// 相当于 b = a.slice()
const a = {a:1,a:2}
const b = {...a}
// 相当于 const b = Object.assign({},a)
fn.apply(null,args)
等同于
fn(...args)
Math.max(...[14, 3, 77])
// 等同于
Math.max(14, 3, 77)
40、安卓4.4版本一下要支持css3,必须要加-webkit-,比如-webkit-transform