如何判断对象为空
- for…in…遍历属性,为真则为“非空数组”;否则为“空数组”
function obj(o){ for(var item in o){ console.log('非空'); } console.log('空'); }
- 通过JSON自带的.stringify方法来判断
if(JSON.stringify(obj)=='{}'){ console.log('空'); }
- ES6新增的方法Object.keys()
if(Object.keys(obj).length == 0 ){ console.log('空'); }else{ console.log('非空'); }
如何对undefined判断
- js判断变量未定义
var exp = undefined; if (typeof(exp) == "undefined") { alert("undefined"); }
this.setState()异步调用问题
明明执行过setState(),但是state里的值却不是最新的,那么如何解决这个问题呢?
因为setState()函数接受两个参数,一个是对象,就是设置的状态,还有一个是回调函数,是在设置状态成功之后执行的,所以我们可以通过回调函数拿到最新的state值。
this.setState({
tableStateList: []}, () => {
//这里打印的是最新的state值
console.log(this.state.tableStateList);
})