javascript ES 6基础语法摘要
程序员文章站
2022-04-25 20:09:09
...
布尔值(boolean)判断数据类型为空
-
数组
var arr = []; if (arr.length === 0){ alert("arr 为空"); }
-
对象(python 字典)
var object = {}; # 无法判断是否为空 alert(object === {}) // false alert(Boolean(object)) // true
有效方法 1
alert(JSON.stringify(object) === "{}") // true
有效方法 2
var isEmpty = true; for (var i in object){ isEmpty = false; } alert(isEmpty);
有效方法 3 es6 新增
alert(object.keys().length === 0) # true
-
字符串
var str = ''; alert(Boolean(str)); // false var str = '123'; alert(Boolean(str)) // true
箭头函数
- 箭头函数在 forEach 或者 map 的函数中,return 不能中断外部函数的执行
var arr = [1,2,3,4]
arr.forEach(v=>{
if (v=== 2){
return;
}
})
alert("Running"); 此语句仍旧执行
- 这是因为 return 只中断了该 箭头函数的执行,forEach 的参数是一个函数,相当于有两层执行空间,return 只返回了第一层,也就相当于正常 for 循环中的 continue,等于下面的代码
var arr = [1,2,3,4];
for (var i=0;i<arr.length;i++){
if (i === 2){
continue
}
}
Promise 对象
- 该对象类似于一个线程,开辟了另一段空间,异步执行代码后,返回给 订阅(subscribe)的函数
let Obj = new Promise(re => setTimeout(re, 2000));
Obj.then(()=>{
console.log("Promise Done");
})
console.log("Running");
// 结果是
# Running
# Promise Done
- 该现象会导致,明明在 ngOnInit 中执行了一个 请求数据的Http 请求,然后跟着去获取该http的数据时,调用报错,显示该http 数据为 Undefined
- 这是因为在angular 中强制使用 promise 调用 Http 请求,当执行到获取 http 请求的语句时,正在网络通信状态,就跳过该语句,进而执行获取http 数据的语句,直到http请求完全返回时,http 数据才会被赋值
- 解决方案就是对 获取 http 数据加上一个时间缓存,类似于上面的代码
- 或者 直接在 进行请求Http数据的的语句块中进行数据操作
上一篇: 自定义注解+AOP实现限制访问时间长度、最多访问次数
下一篇: spring-data-jpa