1.禁止右键菜单
document.addEventListener("contextmenu", function (e) { e.preventDefault(); });
2. 禁止选中
document.addEventListener("selectstart", function (e) { e.preventDefault(); })
3. 返回任意对象的类型
var obj = null; console.log(Object.prototype.toString.call([obj]))
返回值 [object Array]
4. 双击禁止选中文字
window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
5. 合并对象
let defaults = { type: "get", params: {}, contentType: 'x-www-form-urlencoded', success: function (res) { console.log(res) }, error: function (err) { console.log(err) } }; Object.assign(defaults, o);
这是自己在封装ajax函数时候设置的默认值,个人觉得使用自己封装的ajax,每次都要填写所有的参数,很麻烦,找了好久才找到这种方式,设置一些默认值,然后把传递过来的参数和默认参数合并,没有传递的参数使用默认值
Object.assign方法会改变括号中第一个对象,但是不会改变第二个源对象,并且判断在第二个对象中的键值对是否在第一个对象中存在,存在的话,就合并.不存在就新增
6. 扁平化多维数组flat()
解释一下什么叫多维数组,就是一个数组里面的,比如说第一个元素,也是数组,这就是一个二维数组,这个元素数组中如果还是一个数组,就构成了一个三维数组,依次类推
//2维数组 let arr2 = [1,2,3,[4]]; //三维数组 let arr3 = [1,[2,[3]]]
简单判断就是,同向括号出现的最高次数 , 例如 " [ " 符号出现最高3次就是三维数组
flat()后面有一个参数,默认1,就是扁平化一次.例如三维数组变成了二维,可以写infinity,就是一次性推平所有的数组,然它变成一个一维数组
let arr = [1,[2],[3,[4,[5]]]]; let newArr = flat(arr); console.log(newArr) //[1, 2, 3, 4, 5]
7. jQuery提交表单方法
$("#form").on("submit", function (e) { e.preventDefault(); //阻止默认的表单提交行为 let params = $("#form").serialize(); console.log(params) })
$("#form")存在于form标签当中,form表单中的每一项都必须要有name属性,使用
serialize()方法之后,会把所有的所有表单转换成键值对以end符号连接的形式( 也就是正常传递参数的形式 )
//除了这个方法以外,还有一个serializeArray()方法 <<<比较实用>>>
let arr = $("#form").serializeArray(); console.log(arr); let obj = {}; arr.forEach(function (item) { obj[item.name] = item.value; console.log(obj) }) //打印结果 [{ … }, { … }] 0: { name: "uname", value: "李四" } 1: { name: "pwd", value: "123456" } length: 2 __proto__: Array(0)
这个方法转化的是一种数组存储对象的形式,我们需要遍历循环,将数据进行处理
本想把生活活成一首诗, 时而优雅 , 时而豪放 , 结果活成了一首歌 , 时而不靠谱 , 时而不着调