TypeScript与Vue组合开发记录点(九)

TypeScript与Vue组合开发记录点(九)

  • Lodash第三方库实现深克隆
  • toFixed()
  • JavaScript Array some() 方法
  • JavaScript find() 方法
  • promise方法的finally调用

Lodash第三方库实现深克隆

Lodash第三方库,有cloneDeep的API,可以调用实现深拷贝。例如

var objects = [{ 'a': 1 }, { 'b': 2 }];
var deep = _.cloneDeep(objects);
// 对比deep的第一个元素,和objects的第一个元素,使用===全等符号
console.log(deep[0] === objects[0]);
// 输出=> false,证明已经完成深克隆

toFixed()

使用toFixed()可以实现对数字的四舍五入,并且指定位数。

var num = 5.56789;
// 四舍五入,指定位数为2
var n=num.toFixed(2);
// 打印输出n,显示为5.57

JavaScript Array some() 方法

some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。some() 方法会依次执行数组的每个元素:如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。如果没有满足条件的元素,则返回false。

<p>最小年龄: <input type="number" id="ageToCheck" value="18"></p>
<button onclick="myFunction()">点我</button>
<p>判断结果: <span id="demo"></span></p>
<script>
var ages = [4, 12, 16, 20];
// 检测数组中是否有元素大于 18:
function checkAdult(age) {
    return age >= document.getElementById("ageToCheck").value;
}
// 点击按钮后,触发点击事件,执行some方法与自定义的checkAdult函数,检测ages的元素
function myFunction() {
    document.getElementById("demo").innerHTML = ages.some(checkAdult);
}
</script>

JavaScript find() 方法

find()方法, 方法返回通过测试(函数内判断)的数组的第一个元素的值。find() 方法为数组中的每个元素都调用一次函数执行:当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。如果没有符合条件的元素返回 undefined

// 检测数组中第一个大于等于12的元素
var ages = [4, 12, 16, 20];
function checkAdult(age) {
    return age >= 12;
}
// 执行自定义函数后,第一个大于等于12的值存在,为ages中的12,则return 12
function myFunction() {
    return ages.find(checkAdult);
}
// 若遍历完后没有符合条件元素,则返回undefined

promise方法的finally调用

Promise类型的方法函数,在typescript中不仅有then、catch、还有finally可以进行链式调用。Finally是无论执行了then,还是catch,最后都会执行的调用。

var promise = new Promise(function(resolve, reject) {
    console.log("promise")
    window.setTimeout(function(){
      if (false){
        resolve('sucess');
      } else {
        debugger
        reject('error');
      }
    },1000)
  }).then(function(){
    console.log('success');
  }).catch(function(){
    console.log('catch');
  }).finally(function(){
    console.log('finally');
  });
// 其中的finally肯定会执行,不管前边是否执行的是then,还是catch方法。

你可能感兴趣的:(前端,typescript,vue.js,javascript)