把我最近学习过程中小技巧整理如下
<!--1.异或交换变量值-->
<script>
var num1 = window.prompt("num1");
var num2 = window.prompt("num2");
num1^=num2;
num2^=num1;
num1^=num2;
</script>
<!--2.提取hash数组中的key-->
<script>
i=0;var keys=[];
for(keys[i++] in hash);
return keys;
</script>
<!--3.根据数组元素动态生成页面内容-->
<select id="sel">城市选择</select>
<script>
var provs = ["北京","上海","天津","重庆"];
var html = "<option>" + provs.join("</option><option>") + "</option>";
//设置id为sel的元素开始标签到结束标签之间的内容为html
sel.innerHTML=html;
</script>
<!--4.使用排序api-->
<script>
var arr=[12,4,2,5,1,7,3,6]; //sort()默认仅能对字符串升序排序;
function cmp(a,b){return -(a-b)}; //定义比较器函数;
arr.sort(cmp); //使用比较器函数;
console.log(String(arr));
</script>
<!--5.怎么将位数补齐-->
<script>
//比如转化为unicode码,怎么是他们都是五位数?
var u = msg.charCodeAt(i);
u = (u + 100000 + "").slice(1);
</script>
<!--6.索引-->
<script>
//怎么循环找到所有关键字,尤其是对于第一个字符就是关键字的。
var str = "no zuo no die no can no bibi";
// 0 7 14 21;
var i = -1;
while((i=str.indexOf("no",i+1))!=-1)
{ //如果索引不放在判断语句里,第一个no将索引不到
console.log(i);
}
</script>
<!--7.设置新对象继承father-->
<script>
//Object.setPrototypeOf(obj,father); 存在兼容问题 IE11才支持
//如何不用setPrototypeOf也能设置继承
//step1:定义临时空构造
var Temp = function(){};
//step2:设置空构造的prototype引用父对象
Temp.prototype = father;
//step3:用临时构造函数实例化子对象 child就是所需子对象
var child = new Temp();
</script>
<!--8.是否空数组-->
<script>
//比如 在二维数组中判断某一行是否为空
var arr[r][c];
//arr[r].join("") !=""
</script>