jscore
weixin_44343449
这个作者很懒,什么都没留下…
展开
-
对象的深拷贝
// 深拷贝function deepCopy(newObj, oldObj) { for(var k in oldObj) { var val = oldObj[k] // 判断对象的属性值是否是数组 if(val instanceof Array) { newObj[k] = [] deepCopy(newObj[k...原创 2020-03-31 22:20:41 · 111 阅读 · 0 评论 -
浏览器内核判断
var ua = navigator.userAgent; if(/firefox/i.test(ua)) { console.log('火狐内核') }else if(/chrome/i.test(ua)) { console.log('谷歌内核') }else if(/opera/i.test(ua)) { console.log('欧朋内核') } e...原创 2020-02-20 11:42:54 · 132 阅读 · 0 评论 -
dom存在兼容性的属性总结
事件对象event:不支持ie8以下,必须是window.event,兼容写法:document.onmousemove = function (event) {var e = event || window.event;}pageX和pageY(鼠标距离文档顶部的距离,包括文档卷出去的距离):不支持ie8以下,可以使用clientY(鼠标距离浏览器窗口顶部的距离)。文档滚出去的高度...原创 2020-02-20 11:40:20 · 130 阅读 · 0 评论 -
client组,offset组,scroll组
clientWidth:获取元素的宽度,包括padding。clientHeight:offsetWidth: 获取元素的宽度,包括padding和border。offsetHeight:offsetParent:获取元素的定位父元素节点,如果父元素没有定位,则返回body节点。offsetLeft: 获取元素相对于定位父元素的左侧距离。如果父元素没有定位,则相对于body。offse...原创 2020-02-20 11:39:36 · 94 阅读 · 0 评论 -
for in和for of
// for(item in arr) :遍历数组,item是索引。如果为arr动态添加元素,则会被被遍历。// for in 可以遍历对象.进行对象的深拷贝。// for(item of arr): item 是值。如果为arr动态添加元素,则不会被遍历。for of 不能遍历对象。// 数组的长度问题:位数组动态添加属性,如果属性是数字,则length会增加,如果为非数字,则length...原创 2019-10-28 09:56:14 · 104 阅读 · 0 评论 -
将字符串转化为人民币格式
var a = 12324327 a=a.toString() var b = a.split("").reverse()for(var i=1;i<=b.length;i++){ if(i%4==0){ b.splice(i-1,0,',') }}b.reverse()b=b.join("")console.log(b)原创 2019-07-28 14:17:43 · 576 阅读 · 0 评论 -
随机生成不重复的数字
var arr = [] for(var i = 0;i<10;i++){ //生成随机数 arr[i] = Math.floor(Math.random()*101)//判断当前的arr[i]是否和前面的一样 for(var j = 0;j<i;j++){ //如果一样,i--,重新生成 ...原创 2019-07-28 14:55:43 · 1820 阅读 · 0 评论 -
删除一个数组中重复的数字
var arr = [1,2,4,2,2,2,3,3,4,7,5,3,1] for(var i = 0;i<arr.length;i++){ //将当前的arr[i]和前面的所有进行比较 for(var j = 0;j<i;j++){ //如果相等, if(arr[i]==arr[j]){ ...原创 2019-07-28 15:07:58 · 1730 阅读 · 0 评论 -
面试复习es5,es6
图标字体:icomoon.下载,ES5:1:使用严格模式,use strict。可在script里启用,也可在function里启用严格模式解决的问题(1):禁止给未声明的变量赋值,如果强行赋值会报错。因为给未声明的变量赋值会造成全局污染(内存泄漏)。严格模式解决的问题(2):静默失败提升为报错。比如普通模式下修改只读属性的值,既修改不成功又不报错。严格模式解决的问题(3):严格模式下...原创 2019-08-13 14:33:42 · 144 阅读 · 0 评论 -
将字符串转换为驼峰命名
//join是数组函数,split是字符串函数。var a = 'get-element-by-id'//将a转换成数组。var arr = a.split('-') for(var i = 0;i<arr.length;i++){ //大驼峰 //arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substring(1) ...原创 2019-07-27 15:08:20 · 1697 阅读 · 0 评论 -
易混淆数组和字符串api
split():将字符串安装指定字符切割,然后凭借成数组。返回新数组。如:var a = "jack,jetty,tom"var arr = a.split(",")console.log(arr)//["jack","jerry","tom"]join():将数组安装指定字符拼接为字符串。var newS = arr.join(".")console.log(newS)//jac...原创 2019-07-27 15:07:54 · 146 阅读 · 0 评论 -
Function
声明方式创建函数例:function fun(){ console.log(1)}fun()function fun(){ console.log(2)}fun()结果:2,2分析:函数名相当于变量。函数就是对象。函数会声明提前。(我觉得是函数体提前。)当第一个fun创建时,它引用的是函数体的地址。第二个fun再出现时,变量不会被重复创建。所以,内存里不会再创建f...原创 2019-06-26 18:02:39 · 174 阅读 · 0 评论 -
OOP
对象:描述现实中一个事物的属性和功能的程序结构。对象的底层是关联数组,可用for in 遍历,可以动态添加成员,可以通过.访问。对象属性的访问:obj[“key”]:表示固定的,意思是对象里有key 这个属性。如:obj[“age”].等效于obj.key.获取对象里的属性用此方法。obj[key]:表示动态的。key只是关联数组的下标而已。如果为对象动态添加属性则用次方法。**封装:*...原创 2019-06-27 12:25:07 · 62 阅读 · 0 评论 -
ES5,斐波那契
ES5:**一:**use strict:严格模式。1:在es5之前,给未声明的变量赋值,会在全局创建变量,造成全局污染,启用严格模式则会报错。2:在es5之前,有时执行一段代码时,没执行成功,但是不报错(静默失败),在严格模式下会将静默失败提升为报错。3:普通函数调用中的this不再指向window,而是undefined4:强烈不建议使用递归(效率太低)//斐波那契数列: fu...原创 2019-06-27 19:50:58 · 126 阅读 · 0 评论 -
数组api
es5:判断哪个数组升序排列:every() var arr1 = [3,4,5,6,1] console.log(arr1.every(function(item,i,arr){ return i<arr.length-1?arr[i]<arr[i+1]:true }))some():forEach():修改原数组 arr1.forEach(functi...原创 2019-06-27 23:33:33 · 131 阅读 · 0 评论 -
clientX,offectX,screenX的区别:
clentX:光标距离浏览器可视区域的左上角距离。screenX:光标距离显示器的左上角距离offectX:光标距离当前元素左上角的距离。。原创 2019-07-13 11:35:42 · 331 阅读 · 1 评论 -
promise
当好几个异步方法同时发起请求时,响应的顺序是不能人为控制的。如果想要依次得到响应结果就必须嵌套。例如下程序,一定是先执行外层再执行内层。:<script> ajax("http://localhost:8000/tom","get",(res)=>{ console.log(res) ajax("http://localhost:8000/jack","ge...原创 2019-06-28 17:16:18 · 69 阅读 · 0 评论