给页面所有元素添加一个border [].forEach.call($$("*"),function(a){a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16)})
关于箭头函数 函数的参数,普通的函数参数能够被arguments访问到,如果是箭头函数,则无法被arguments访问。function fuc(){ console.log(arguments);}const fun = () =>{ console.log(arguments);}fuc(1); // 1fun(1); //arguments is not defined...
创建对象的模式 工厂模式function createPerson(name,age,job){ let obj = new Object(); obj.name = name; obj.age = age; obj.job = job; obj.sayName = function(){ console.log(this.name); } return obj;}let person1 = createPerson('jack',12,'
对象的数据属性与访问器属性 1.数据属性Configurable设置属性是否可以通过delete删除,是否可以修改它的特性,是否可以把他改为访问器属性let obj = {};Object.defineProperty(obj,"value",{ configurable:false, value:"123",});// 会报错,不能二次更改Object.defineProperty(obj,"value",{ configurable:true, value:"123",})
关于迭代器 实现迭代器的数据类型字符串 数组 映射(Map,Set) 集合 arguments 对象 NodeList 等 DOM 集合类型检查是否实现迭代器const a = 1; const c = {};console.log(a[Symbol.iterator]); //undefinedconsolt.log(c[Symbol.iterator]); //undefinedconst str = 'abc';const arr = ['a','b',...
Map,WeakMap,Set,WeakSet区别 Map1. 可以使用任何类型当作键2. 可迭代遍历3.add、delete、has、clear、entries、forEach、keys、valuesWeakMap1. 只能用Object类型作为键2. 不可迭代遍历3.get、set、has、delete4. 键会被垃圾回收机制回收Set1. 可以保存任何类型的值2. 可迭代遍历3.add、delete、has、clear、entries、forEach、keys、valuesW...
关于逻辑操作符 const a = new Object({value:'123'});const b = new Object({value:'456'});const c = 1;a&&b // {value:'456'}a&&c // 1c&&a //{value:'123'}a||b //{value:'123'}a||c //{value:'123'}c||a // 1
关于位操作符 18的二进制为10010-18的二进制为:先每位取反: 01101 = 1101再给最后一位加1:1110按位非(~):let num1 = 25;let num2 = ~num1; //num2为-26也就是按位非操作符是数值取反再减一按位与(&):let result = 3&5 //result = 13 = 0 1 15 = 1 0 1只有二进制两个都是1...
关于浮点数计算的精度以及数值类型的数据 最好把浮点数转换成整数进行计算,否则有可能出现精度丢失的问题。比如经典的 0.1+0.2 =0.300 000 000 000 000 040.1 + 0.2 = 0.300 000 000 000 000 04;// js的最小值Number.MIN_VALUE// js最大值Number.MAX_VALUE// 关于NaN和Infinityconsole.log(0/0); // NaN console.log(-0/+0); // NaNconsole.log(5/.
使用Promise.all()同时发送多个请求 项目开发过程中遇到了需要同时发送多个请求以及接受返回值的情况const req = [];// 假设有多个请求req.push(res1);req.push(res2);req.push(res3);...Promise.all(req).then(result=>{//result就是所有接口的返回数据数组 console.log(result);});...