用户名:
密码:
邮箱:
*
*
用户名:
密码:
*
JS
JSON.parse(r) //解析为JSON字符串,构造由字符串描述的JavaScript值或对象。
location.reload(); //刷新页面
history.go(-1); //返回上一页
self.location=document.referrer; //返回上一页并刷新
encodeURIComponent(string); //把字符串作为URI组件进行编码二进制
decodeURIComponent(string); //可进行解码
encodeURI(string); //把字符串作为URI组件进行编码二进制
decodeURI(string); //可进行解码
parseInt(str); //取整数
str=str.toUpperCase(); //字符串转换为大写
str=str.toLowerCase(); //字符串转换为小写
break; //直接跳出所有循环
continue; //跳出一次循环
Math.random() //随机数
setAttribute 设置标签自定义属性 getAttribute 获取标签自定义属性
arr.concat() //不会修改原数组,连接两个或多个数组,多个数组用逗号分隔
instanceof //运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性。 a instanceof b
// 1.只保留整数部分(丢弃小数部分)
parseInt(5.1234);// 5
// 2.向下取整(<= 该数值的最大整数)和parseInt()一样
Math.floor(5.1234);// 5
// 3.向上取整(有小数,整数就+1)
Math.ceil(5.1234);
// 4.四舍五入(小数部分)
Math.round(5.1234);// 5
Math.round(5.6789);// 6
// 5.绝对值
Math.abs(-1);// 1
// 6.返回两者中的较大值
Math.max(1,2);// 2
// 7.返回两者中的较小值
Math.min(1,2);// 1
// 随机数(0-1)
Math.random();
js停止冒泡window.event? window.event.cancelBubble = true : e.stopPropagation();
js阻止默认行为window.event? window.event.returnValue = false : e.preventDefault();
var array={"a":"1","b":"2","c":"3"}
for(var key in array){
console.log(array[key]);
}
var array=["a","b","c"]
for(var key in array){
console.log(array[key]);
}
console.log("日志信息");
console.info("一般信息");
console.debug("调试信息");
console.warn("警告提示");
console.error("错误提示");
console.log('%c有颜色的输出信息', 'color:white; background-color:#0055CC');//格式输出
setTimeout(fun,0) //默认是4ms 伪线程
//-------------------------------------
var timer;
var i=0x100000;
function func() {
timer = setTimeout(func, 0);
$("div").css("backgroundColor","#"+i.toString(16));}
if (i++ == 0xFFFFFF) {clearInterval(timer);}
timer = setTimeout(func, 0);
//-------------------------------------
经过我的实测,不会卡死很流畅。
其中的缘由要讲一下setTimeout(fuc,0);的原理。
setTimeout的最小延迟时间为4ms也就意味这即使我们写0,在执行setTimeout(fuc,0);的时候也会自动编译成setTimeout(fuc,4);
所以相当于每隔4ms执行一次。效果就是setTimeout(f,0)必须要等到当前脚本的所有同步任务结束后才会执行。
setTimeout(function(){
func1();
},0)
func2();
//在上面这段代码中func2先执行,func1后执行,0s延迟表示回调函数将插队到一个能立即执行的时段
//如果不写0,浏览器自动配置时间,多为10-100ms,所以还是func2先执行,func1后执行
因为JavaScript是单线程的,较大的程序容易出现阻塞。
setTimeout可以处理这一问题,它可以把较大的程序分成多个片,插入到执行队列中,在不同的时段执行。
换言之,就是把其它执行块穿插到大程序内部,实现了伪多线程。
函数库Concurrent.Thread.js是实现JavaScript多线程的。
下载并引入该库后,
Concurrent.Thread.create( code block 1 );
code block 2;
代码块1不论多大,都不影响代码块2的执行。
数组
array.pop() //删除数组最后一个元素
array.splice(5,1) //删除数组中索引为5的,删除一个,数组长度会改变
var newArr = arr1.concat(arr2); //两个数组拼接成新数组
var newarr = array.slice(0,5) //截取array数组从0至5之间的数组
var arr=[1,2,3]; arr.indexOf(1)//0 查找数组内是否有匹配的 如果有就返回数组内的索引 没有返回-1
arr.unshift(1); //在数组前添加数据
arr.map((item,index)=>{return item}); //遍历数组,item是数组的每一个值,index是下标索引,returm是修改的值
[7,5,3,6,9,546].sort((a,b)=>{return a-b;}) //升序排序 1,2,3
[7,5,3,6,9,546].sort((a,b)=>{return b-a;}) //降序排序 3,2,1
["dsds","fdds","vffd","tretre"].sort() //["dsds", "fdds", "trete", "vfggfd"]
sort():方法用于对数组的元素进行排序(排序改变的是原有的数组不生成副本),如果没有使用参数,将按字母排序(Ascall编码)对数组的元素进行排序,准确点是按照字符编码的顺序进行排序,要仅需升序或者降序需要提供比较函数
字符串操作
"1,2,3,4,5,6".split(",") //按照逗号分隔成数组
"123456".substring(1,3) //23 从位置1开始截取 截取至位置3前面一个字符 截取个数为 3-1=2
"123456".slice(1,3) //23 从位置1开始截取 截取至位置3前面一个字符 截取个数为 3-1=2
// "123456".slice(1) 从位置1开始截取,截取到最后
"123546".substr(1,3) // 235 从位置1开始截取 截取三个字符
"arr".unshift(3) //从数组头部插入
"arr".push(1) //从数组尾部插入
let str = JSON.stringify({"aa":"11"}) //序列化成 一个JSON 字符串的值 字符串类型
var aa = '{"aa":1}'; aa = JSON.parse(aa); //解析为JSON字符串
["牛逼1","牛逼2","牛逼3"].join(",") // 牛逼1,牛逼2,牛逼3 将数组的所有元素添加到字符串中
'1,2,3,4,5,6,7'.split(",") //将字符串已逗号形式分隔为数组
"adf".charAt(2) //f
"adf".charAt("d") //1
数组操作
对象操作
delete obj[key] //删除对象
for (key in obj){} //遍历对象 key为对象下标
伪类操作更改样式
document.styleSheets[0].insertRule( '.site-page--login::before{background-image:url("1.png")}',0)
window.location.host; //获取域名和端口 如果有端口就获取端口 没有就没有端口
进制转换
parseInt('16',16) //16进制转换为10进制
parseInt('8',8) //8进制转换为10进制
parseInt('2',2) //2进制转换为10进制
num.toString(16); //参数可以是2,8,16. 本例是将num转成16进制数据
时间操作 date
new Date().getTime() //获取当前时间的毫秒
new Date().toLocaleString() // "2019/4/4 下午2:04:42"
new Date(str) //转为date对象
str:
1554355486494 时间戳
"2019-04-04 18:00:59" //日期格式
"2019-04-04" //日期 转为的date对象的时间是 8点
滚动条
1、让滚动条滑动到最底部
div.scrollTop=div.scrollHeight;
const typedArray1 = new Int8Array(6);
typedArray1[0] = 10;
typedArray1[1] = 11;
for (let item of typedArray1) {
console.log(item);
}
Array.from()
es6
合并对象
let age = {age: 15};
let name = {name: "Amy"};
let person = {...age, ...name};
person; //{age: 15, name: "Amy"}
Powered By © 奇迹云 备案号:粤ICP备17082613号
本站部分资源来源于互联网网友交流,只供网络测试和学习交流所用、所有版权归原权利人,如有关资源侵犯了你的权益,请联系告之,我们将于第一时间删除!