前段的坑记录 点点滴滴

1.当盖视点设置填充属性时边界半径不生效

2.获取对象属性的个数Object.getOwnPropertyNames(testObj)。长度

3.Vue.js当绑定事件和类名一样时页面一片空白也不报错!

4.vue只能有一个根元素

5.Vue不允许在已经创建的实例上动态添加新的根级响应式属性。

6.Vue不能检测到对象属性的添加或删除或修改,最好的方式就是在初始化实例前声明根级响应式属性,哪怕只是一个空值。

7.使用VUE全局方法设置对象属性可以使VUE检测到属性的添加和删除但依旧不能检测到修改

8.

数组pop()删除最后一个,    
push()添加最后一个,
shift()删除第一个,
unshift()添加第一个

9.小程序在页面配置css overflow-hidden页面就不滚动了

10.vue v-if v-else v-for别挂在一个标签使用!会爆炸

11.Vue在富文本中绑定事件在渲染出来事件不生效要这样搞

	mounted:function(){
	  	this.$nextTick(() => {
		    // Code that will run only after the
		    // entire view has been rendered
		    $(this.$el).on('click', "img", (e) => {
		        console.log(e.target.src)
		    })
		 })
	},
//$nextTick dom更新 nextTick数据更新
//this.$refs.article 绑定任意对象

12. vue中指令的用法

 <input v-local-test />   

directives:{
        'local-test':function(el,binding,vnode){
            /** el可以获取当前dom节点,并且进行编译,也可以操作事件 **/
            /** binding指的是一个对象,一般不用 **/
            /** vnode 是 Vue 编译生成的虚拟节点 **/
            el.style.border="1px solid red";  //操作style所有样式
            console.log(el.value);  //获取v-model的值
            console.log(el.dataset.name) //data-name绑定的值,需要el.dataset来获取
            console.log(vnode.context.$route); //获取当前路由信息
        }
 },

13.onpopstate检测历史变化pushState的的的的的的的的的设置历史记录replaceState更改历史记录

让对方手机不能返回 超暴力!
window.onpopstate = function(event) {
	history.pushState({page: 3}, "title 3", "?page=3");
  alert("location: " + document.location + ", state: " + JSON.stringify(event.state));
};
//绑定事件处理函数. 
history.pushState({page: 1}, "title 1", "?page=1");    //添加并激活一个历史记录条目 http://example.com/example.html?page=1,条目索引为1
history.pushState({page: 2}, "title 2", "?page=2");    //添加并激活一个历史记录条目 http://example.com/example.html?page=2,条目索引为2
//history.replaceState({page: 2}, "title 3", "?page=3"); //修改当前激活的历史记录条目 http://ex..?page=2 变为 http://ex..?page=3,条目索引为3
//console.log(history)
//history.back()
//history.go(1)
//history.back(); // 弹出 "location: http://example.com/example.html?page=1, state: {"page":1}"
//history.back(); // 弹出 "location: http://example.com/example.html, state: null
//history.go(2);  // 弹出 "location: http://example.com/example.html?page=3, state: {"page":3}

14.只有标签才能为一个表单但是标签并不能使选择出现下拉,标签,输入等单标签不能:之前的类

15.Vue绑定事件对象用$ event @ click =“fun($ event)”

16.原生AJAX

var ajax=null;
try {
    ajax=new XMLHttpRequest()
}catch(e) {
    ajax=new ActiveXObject("Microsoft.XMLHTTP")
}
ajax.open("post","a.php",true)
//原生ajax要设置请求头 不然默认text/plain请求头 无法发送键值对数据
ajax.setRequestHeader("content-type","application/x-www-form-urlencoded")
//请求体键值对数据
ajax.send("name=张三&age=20")
ajax.onreadystatechange=function(){
    if(ajax.readyState==4){
        if(ajax.status==200){
            console.log(ajax.responseText)
        }
    }else{
        console.log(ajax.status)
    }
}

17.要想在形式提交时不跳到其他页面可以这样!表单提交好像没用到的XMLHttpRequest的的的的因为在控制台XHR请求里面看不到

<!-- 空iframe,用于协助处理form提交后不进行页面跳转的问题 -->
<form target="iframe_display" action=""></form>
<iframe  name="iframe_display" style="display: none;"></iframe>

18.拼接对象用Object.assign({},{})取对象的值Object.values()取对象的键Object.keys() 

19.js有几种基本数据类型?用的typeof运算运算运算运算去检测的话有基本类型(数字,未定义的,字符串,布尔)引用类型(对象,函数)

阵列是对象,空是物体另外还用日期对象正则对象等等

20.用vue时可以先绑定个原生类名在绑定个vue类名<div class =“text-danger”:class =“'active'”>

21.if判断中undefined,null,0 NaN,“”,false都执行不了

22.Boolean(ARR)用来判断布尔值是真还是假

23.iframe获取父页面parent.document操作父方法parent.function(),window.open()打开的窗口可以通过opener.document opener.function()来搞  window.frames["iframe的name值"].document.getElementById("iframe中控件的ID").click();  

24.普通函数和定时器中的这是窗口,构造函数中的这是实例对象,原型方法中的这也是实例对象

25.当CSS定位设置的是绝时离脱离文档流,边缘不再生效

26.在三维变换中,如果角度不生效那可能是不兼容加上-webkit-前缀试验,变换风格:持之以恒-3D开启3D模式

27.回调函数函数作为参数调用

28.阻止事件冒泡e.stopPropagation

29.dom设置自定义属性dom.setAttribute()---------- dom.getAttribute()

bigBox.setAttribute('style' , 'width:400px; height:300px; background-color:blue')

30.用line-block 有时候很难和前面的元素对其 这时候加上position:relative 然后调位置

31.变量提升,变量中的值不提升,常量只能定义一次,变量可以重复定义

32. 

1、onmouseleave、onmouseenter,鼠标进入到指定元素区域内触发事件,不支持冒泡,不包含子元素的区域。

2、onmouseout、onmouseover、鼠标进入指定元素触发事件,含子元素区域。

 33.vue子组件向父组件传递值时,要小写事件名称!

1、事件名称要求全小写。
2、不是父子关系。这里的父子关系是严格的父子关系,祖孙关系也不行。只能一层一层触发,这在写树形组件时,很容易掉坑里。

34.window.history.go(-1),window.history.back(),window.location.href=''

35.window.innerHeight 获取设备宽高

var a=':9:' 
console.log(a.replace(/(?=\d)/g,0)); 
匹配后面是一个数字的空符 结果:09: 可以用来日期补0


var a=':9:' 
console.log(a.replace(/(?<=\d)/g,0)); 
匹配前面是一个数字的空符 结果:90: 可以用来日期补0



var num=('0'+num2).slice(-2)可以截取后两个

slice(-4,-2)
slice(0,-2)



let str = "2016-1-1 1:1:1"//下面两种正则替换方法都可以实现日期补零 
console.log(forDate.replace(/(?=\b\d\b)/g,0))
console.log(str.replace(/\b\d\b/g, '0$&'));

36.命令行输入 echo test > .properties创建以.开头的文件

37.打包工具的.babelrc文件用记事本打开,存储为任意格式,utf-8编码

39.在谷歌浏览器使用翻译时e.target.nodeName不好使 因为谷歌把我们的标签名改了 比如i 改为font

40.

  1. 将输入的中文替换成空字符
input.value = input.value.replace(/[\u4E00-\u9FA5]|[\uFE30-\uFFA0]/g, '');

41.ime-mode:disabled这是个垃圾属性 只有ie和火狐支持 大家都别用!

42.input表单只能输入数字 加号点号都不可以的写法

<input  onkeypress="return(/[\d]/.test(event.key))"  onkeyup="fun(event)"/>
英文输入状态下 onkeypress可以做到

中文输入状态下用事件做替换
	function fun(e){
		e.target.value=e.target.value.replace(/[^0-9]/g,'')//替换掉不是数字的
		e.target.value=e.target.value.replace(/^0/,'')//替换掉开头是0的
	}

43.a链接跳到本页面

    <a href="#tt">单此处什么也不会发生</a>
	<div id="tt" style="width:200px;height:200px;background:red"></div>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值