安徽住房与城乡建设部网站,建设公司网站的原则,百度关键词收录排名,国外js建设网站一、JS相关
1.进制转换
#xff08;1#xff09;十进制转二进制
十进制数除2取余法#xff1a;十进制数除2#xff0c;余数为权位上的数#xff0c;得到的商继续除2#xff0c;直到商为0。最后余数从下往上取值。
#xff08;2#xff09;二进制转十进制
把二进制…一、JS相关
1.进制转换
1十进制转二进制
十进制数除2取余法十进制数除2余数为权位上的数得到的商继续除2直到商为0。最后余数从下往上取值。
2二进制转十进制
把二进制按权展开从右到左 权值乘以2的0次方到N次方
3二进制转八进制
3位二进制数为一组从右到左3位二进制数按权展开相加得到一位八进制数不足补零
4八进制转二进制
八进制数除2取余法除2取余余数从下往上取值
5二进制转十六进制
4位二进制数为一组从右到左4位二进制数按权展开相加得到一位十六进制数不足补零
6十六进制转二进制
十六进制除2取余法除2取余余数从下往上取值
7十进制转八进制或十六进制
有2种方法
一是把十进制转为二进制后再转八进制或十六进制
二是十进制除8或除16取余法余数也是从下往上取值
8八进制或十六进制转十进制
把八进制数或十六进制数按权展开相加得到十进制数比如八进制226为 2*8^22*8^16*8^0
9八进制与十六进制转换
有2种方法
一是先转换为二进制再相互转换
二是想转换为十进制再互相转换
10负数转换
先将负数写为补码形式再根据二进制转换其他进制的方法进行
比如将十进制数 -9 转为八进制
-9的补码为1111 1111 1111 0111先原码--再反码--再补码
然后从右往左3位一划不足补零最后得到177767即为-9的八进制形式
总结
十进制八进制、十六进制转二进制除2取余法
二进制转十进制从右到左按权展开2的n次方
二进制转八进制3位一划从右到左按权展开不足补零2的n次方
二进制转十六进制4位一划从右到左按权展开不足补零2的n次方
十进制转八进制十六进制除816取余法
八进制十六进制转十进制从右到左按权展开8的n次方或16的n次方
八进制与十六进制相互转换可先转为二进制十进制再相互转换
十进制负数转八进制十六进制先将负数写为补码再用二进制转换
2.js超出显示省略号 str 开始时间,结束时间,span名称,应用名称,页面访问趋势 需求只显示字符串前3项其余以省略号展示并且鼠标悬浮时展示全部 newStr str.split(,).slice(0,3).join(,) ,... div :titlestr newStr:{{newStr}} /div 3.call()、apply()、bind()用法
1都用来重定义this指向 var name 小小 , age 20 var obj { name:阿拙, objjAge:this.age, myFun:function(){ // 此时取不到this.age值 因为this指向obj这个对象 console.log(this.name 年龄 this.age) } } var data { name:苏苏, age19 } obj.myFun.call(data) // 苏苏年龄19 obj.myFun.apply(data) // 苏苏年龄19 obj.myFun.bind(data)() // 苏苏年龄19 由以上代码可知call、apply和bind都可以通过传参调用obj对象内的方法将值传递进去bind返回的是一个新的函数必须调用它才能被执行。
2对比call、apply、bind传参 var name 小小 , age 20 var obj { name:阿拙, objjAge:this.age, myFun:function(fm,to){ // 此时取不到this.age值 因为this指向obj这个对象 console.log(this.name 年龄 this.age,来自 fm 去往 to) } } var data { name:苏苏, age19 } obj.myFun.call(data,北京,上海) // 苏苏年龄19,来自北京去往上海 obj.myFun.apply(data,[北京,上海]) // 苏苏年龄19,来自北京去往上海 obj.myFun.bind(data,北京,上海)() // 苏苏年龄19,来自北京去往上海 由以上代码可知call、apply和bind三个函数的第一个参数都是this的指向对象 第二个参数传参有区别call和bind都是直接放在第一个参数后以逗号隔开apply的第二个参数需要放在数组里。三者的参数不限定是 string 类型允许是各种类型包括函数 、 object 等。
4.js点击按钮复制文本
因为select()输入框只对input和textarea有效对p无效所以可以在p标签后添加textarea标签并将其隐藏点击按钮时先把textarea的value改为p的innerText然后复制textarea的内容。 style typetext/css .wrapper {position: relative;} #input {position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;} /style div classwrapper p idtext被复制的内容/p textarea idinput已隐藏/textarea button onclickcopyText()复制/button /div script typetext/javascript function copyText() { var text document.getElementById(text).innerText; var input document.getElementById(input); input.value text; // 修改文本框的内容 input.select(); // 选中文本 document.execCommand(copy); // 执行浏览器复制命令 alert(复制成功); } /script 5.js获取数组对象最大小值 list [{ id: 1, name: jack }, { id: 2, name: may }, { id: 3, name: shawn }, { id: 4, name: tony }] 需要获取list数组对象中id属性的最大值和最小值
1Math方法 // 最大值 4Math.max.apply(Math,this.list.map(item { return item.id })) // 最小值 1Math.min.apply(Math,this.list.map(item { return item.id })) 2sort排序会使原数组元素位置发生变化 // 最大值 4 this.list.sort((a, b) { return b-a })[0].id // 最小值 1 this.list.sort((a, b) { return a-b })[0].id 6.for循环内异步操作
1实现每隔1秒打印0~4的值 function box(index){ if(index 5){ console.log(index is : ,index) setTimeout(function(){ box(index1) },1000) } } box(0) 2使用递归实现倒计时 function showTime(count){ console.log(count is : , count) if(count0){ console.log(All is Done !) }else{ count - 1 setTimeout(function(){ showTime(count) },1000) } } showTime(10) 3async和await实现打印0~4 var asyncFunc function(arr,i){ return new Promise(resolve,reject){ setTimeout(function(){ arr.push(i) console.log(index is: ,i) resolve() },1000) } } var box1 async function(){ var arr [] for(var i0;i5;i){ await asyncFunc(arr,i) } console.log(arr) } box1() 4即时执行函数打印数值 function buildList(list){ var result [] for(var i0;ilist.length;i){ var item item list[i] // item6 item7 item8 result.push(function(index,it){ return function(){ console.log(it list[index]) } }(i,item)) } return result } function testList(){ var fnList buildList([6,7,8]) for(j0;jfnList.length;j){ fnList[j]() } } testList() 7.js求n个数中的最大值 // 求n个数中的最大值 function getMax(arr) { var max arr[0]; for (var i 1; i arr.length; i) { if (max arr[i]) { max arr[i]; } } console.log(max); } var array [12, 17, 9, 0, 90] getMax(array) // 90 8.js获取本周、本月时间区间 未完待续......