//document.addEventListener('click',fn1,false);
// document.addEventListener('click',fn2,false);
// document.addEventListener('click',fn3,false);
// document.attachEvent('onclick',fn1);
// document.attachEvent('onclick',fn2);
// document.attachEvent('onclick',fn3);
//封装函数解决兼容问题
function addEvent(obj,etype,fn){//obj:元素对象 etype:事件类型 fn:事件处理函数
if(obj.addEventListener){//标准
obj.addEventListener(etype,fn,false);
}else{//IE
obj.attachEvent('on'+etype,fn);
}
}
// function removeEvent(obj, etype, fn) {//obj:元素对象 etype:事件类型 fn:事件处理函数
// if (obj.removeEventListener) {//标准
// obj.removeEventListener(etype, fn, false);
// } else {//IE
// obj.detachEvent('on' + etype, fn);
// }
// }
// addEvent(document, 'click', fn1);
// addEvent(document, 'click', fn2);
// removeEvent(document,'click',fn2);//移除事件监听
// addEvent(document, 'click', fn3);
firefox:DOMMouseScroll DOM事件只能在事件绑定中使用。 DOM 2级
//i 表示忽略大小写
//g 表示全局匹配
//m 表示多行匹配\n
//var str = 'adfd22我3fdsaf78dsf7喜欢8f7hg987hgf6h76dsa5f你65df654saff';
// 使用 match 方法获取匹配内容,返回数组
// var reg=/[a-z]+/g;
// console.log(str.match(reg));
// 使用 search 来查找匹配数据,和全局没有关系,查找第一个匹配值的位置。(-1)
//console.log(str.search(/[0-9]/));//4
// 使用 replace 替换匹配到的数据,2个参数:1代表正则,2代表用来替换的字符*****
//console.log(str.replace(/[0-9]/g,'*'));
// 使用 split 拆分成字符串数组
//var str='a1b2c3d4e5f';//[a,b,c,d,e]
//console.log(str.split(/[0-9]/));
//exec()方法:和match方法一样,搜索符合规则的内容,并返回内容,格式为数组。
//用法:正则.exec(字符串);
//[0-9] == [0123456789] 表示数字
//[a-z]匹配小写字母
//[A-Z]匹配大写字母
//[A-Z0-9a-z]匹配数字字母
//[123]匹配数字123中的一个
//[^a-z0-9]:取反
//[^a-z]:非小写字母
var reg=/^1[3578]\d{9}$/g
// x{3}:匹配3个x
// x{3,5}:匹配至少3个,最多5个x
// x{3,}:匹配至少3个x
//过滤敏感词
// var str='这件衣服是你妈的,还是你妹的,我猜是你大爷的';
// console.log(str.replace(/妈|妹|大爷/g,'*'));
call():从第二个参数开始代表函数自身参数。
apply():第二个参数是个数组,数组里面放置函数自身的参数。
bind():bind的参数和call一样的,但是bind返回的是函数体,需要再次触发。
JSON.stringify():用于从一个对象解析出字符串
const常量:值不能被改变的(不可重复声明).其他的特点和let一样
// let arr=[1,2,3,4,5];
// let num1=arr[0];
// let [a1,a2,a3,a4,a5]=arr;
// console.log(a1,a2,a3,a4,a5);
// let arr=[1,2,[3,4,[5,6,[7,8]]]];
// let [a,b,[c,d,[e,f,[g,h]]]]=arr;
// console.log(a,b,c,d,e,f,g,h);//1 2 3 4 5 6 7 8
// let [a,b,c]=[1,2,3,4];
// console.log(a,b,c);//1 2 3
// let [a,b,c]=[1,2];
// console.log(a,b,c);//1 2 undefined
// var a=5;
// var b=10;
// var [a,b]=[b,a];
// console.log(a,b);
// let obj={
// n1:10,
// n2:20,
// n3:30
// };
// let {n1,n2,n3}=obj;//变量名就是属性名
// console.log(n1,n2,n3);
// let {n1:a,n2:b,n3:c}=obj;//自定义变量名接受,得到值的后者(a,b,c)
// console.log(a,b,c);
// let {n2}=obj;//常见的写法
// console.log(n2);//20
// let arr=[1,2,3];
// let [a]=arr;
// console.log(1);
// let arr1=[1,2,3];
// let arr2=[4,5,6];
// let arr3=[7,8,9];
// console.log([...arr1,...arr2,...arr3]);//[1, 2, 3, 4, 5, 6, 7, 8, 9]
// console.log(Math.max(...arr1));//3
// console.log(Math.min(...arr2));//4
//let aLi=document.querySelectorAll('li');
//aLi.push(123);//aLi.push is not a function
//aLi=[...aLi];
//aLi.push(123);
//alert(aLi);
// let arr1=[1,2,3];
// let arr2=arr1;
// arr2.push(4);
// console.log(arr1);//?[1, 2, 3, 4]
// console.log(arr2);//?[1, 2, 3, 4]
// function sum(...arr){//将实参的值变成数组了
// console.log(arr);
// let he=0;
// for(let i=0;i<arr.length;i++){
// he+=arr[i];
// }
// alert(he);
// }
// sum(1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10);
//let str='hello';
//console.log(str.repeat(10));
//let str1='javascript';
//console.log(str1.includes('scr'));//true
//console.log(str1.includes('sor'));//false
//console.log(str1.includes('a'));//true
let str1='javascript';
console.log(str1.startsWith('j'));
console.log(str1.startsWith('java'));
console.log(str1.startsWith('jiava'));//false
console.log(str1.endsWith('t'));
console.log(str1.endsWith('ript'));
console.log(str1.endsWith('rpt'));//false
不能直接使用[symbol()]作为键值,最好添加对应的参数进行区分,而且也不能被for...in遍历出来。但可以通过Object.getOwnPropertySymbols(obj)方法获取一个对象所有的symbol属性
// function* fname(){
// yield 'hello';
// yield 'world';
// return 'gameover';
// }
// let result=fname();//Generator函数会返回一个遍历器对象.
// console.log(result.next());//{value: "hello", done: false}
// console.log(result.next());//{value: "world", done: false}
// console.log(result.next());//{value: "gameover", done: true}
// let s1=new Set([12,3,45,8,23,12,345,12,34]);
// console.log(s1);
// console.log(...s1);//支持扩展运算符
//数组去重
// let arr=[1,2,3,4,5,6,6,5,4,3,2,1];
// console.log([...new Set(arr)]);//[1, 2, 3, 4, 5, 6]
window.localStorage.name='zhangsan';
window.localStorage['age']=100;
window.localStorage.setItem('sex','男');//最优
let arr=['apple','banana','orange'];
localStorage.setItem('names',arr);//最优
let obj={
a:1,
b:2,
c:3
}
localStorage.setItem('objdata',obj);//最优
//存储的是'[object Object]'
// console.log(localStorage.name);
// console.log(localStorage['age']);
// console.log(localStorage.getItem('sex'));//最优
// localStorage.removeItem('names');
// localStorage.removeItem('objdata');
localStorage.clear()
//使用key()方法,向其中输入索引即可获取对应的键
//参数必须存在。
// console.log(localStorage.key(0));
// console.log(localStorage.key(1));
// console.log(localStorage.key(2));
// console.log(localStorage.key(3));//null
原文:https://www.cnblogs.com/xxswkl-sn/p/11727834.html