JS学习日志

好看的if…else

首先看个难看点的。。。

1
2
3
4
5
6
var code = 0;
if(code=0){
show('显示')
}else if(code=1){
show('不显示')
}

但它可以好看 一点

1
2
var codeInfo=['显示','不显示'];
show(codeInfo[code]);

可以是对象的形式

1
2
3
4
5
var codeInfo={
0:'显示',
1:'不显示'
}
show(codeInfo[code]);

可以是包含func

1
2
3
4
5
var codeFunc={
0:function(){...},
1:function(){...}
}
codeFunc[code]();

1
2
3
4
5
6
7
8
if(isA){
func(){...}
}else{
return
}

if(!isA) return;
func(){...}

双向绑定

1
2
3
4
5
6
7
8
9
10
11
12
13
var obj = {}
Object.defineProperty(obj,'val',{
get:function(){
console.log('得到值');
},
set:function(val){
console.log('设置值');
//此处写改变值的操作 如根据id修改innerHTML
}
});
document.getElementById('input').addEventListener('keyup',function(){
obj.val = event.target.value;
})

隐式转换

1
2
3
4
var a = 1,b="2";
console.log(a+b);//12
console.log(a + + b);//3
console.log(a - - b);//3

js去除字符串两端空格

MDN知识点
用处有 处理输入框的输入(连续的空格)

1
2
3
4
5
var orig = '   foo  ';
console.log(orig.trim()); // 'foo'
// 另一个.trim()例子,只从一边删除
var orig = 'foo ';
console.log(orig.trim()); // 'foo'

兼容旧环境

如果 trim() 不存在,可以在所有代码前执行下面代码

1
2
3
4
5
if (!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
};
}

null 与 undefined

undefined —– 不存在
null —– 存在但没有

1
2
3
4
5
6
7
undefined == null //结果 true
undefined === null //结果 false
var obj = {a:1,b:2}
obj.c == null //结果 true
obj.c === null //结果 false
obj.c === undefined //结果 true
//判断对象是否存在对应属性时建议用双等号 其他等值判断建议用三等号

渴望下一个知识点的到来。。。

0%