1.js利用 && 和 || 赋值小技巧---就是if-> 值用&&,else用||,if中内容多的写到括号里。
//demo1
var b;
if(b != null){
b = b;
}else {
b = 2;
}
var c = c || 2;
//demo2
var b;
if(b){
b = 1;
}else {
b = 2;
}
var c = (c && 1) || 2;
//demo3
var b;
if(2 > 1){
b = 1;
}else if((1 == 1 || 1 == 2) && 3 == 3){
b = 2;
}else {
b = 3;
}
var c = ((2 > 1) && 1) || (((1 == 1 || 1 == 2) && 3 == 3) && 2) || 3;
2.定义模版字符串不仅可以用+拼接了,还可以用反引号` `包括,${}包含变量。用反引号还可以换行,以前换行要每行用+号拼接,里面还可以用换行符\n。
var name = `Your name is ${first} ${last}. `;
3.判空改用||竖直线:比如
${this.count||null}
<div>{{item.count>0?item.count:'0'}}</div> 换成 <div>{{item.count||0}}</div>
但是如果是三目运算的第一目和第二目类型不一致的话,还是建议用三目的写法,例如:
dir?dir.toString():''
4.去除最后一个逗号
应用场景:有时候需要在循环里面 用逗号拼接变量得到一个字符串,那么最后一个逗号会显得多余
用正则去除最后一个逗号:str.replace(/,$/,'')
5.用replace方法去掉一个数字的千分符的时候,遇到只能去掉第一个的问题,解决办法:
方法一:切割逗号再拼接:str.split(",").join("") 方法二:用正则:str.replace(/,/g,"")
6.判断一个变量是否是数组:Array.isArray(val)
7.debounce写法:
private timeout:number;//防抖定时器
private debounce(callback,wait):void {
if(this.timeout) {
clearTimeout(this.timeout);
}
this.timeout = <any>setTimeout(callback,wait);
}
//点击搜索框
private clickSearch():void {
this.debounce(()=>{
this.queryData();//调用后端接口查询数据
},0);
}