利用ES6的proxy设置一个简单的验证器

const person = new Proxy(
    {
        name: 'Tom',
        age: 13
    },
    {
        set: (item, key, value) => {
            if(key === 'age') {
                if(value > 18) {
                    throw new RangeError('age is too big')
                } else {
                    item[key] = value
                }
            }
        }
    }
)
console.log(person.age = 12)
console.log(person.age = 19)
利用ES6的proxy设置一个简单的验证器插图

js的事件循环机制

1.概述

首先我们需要知道,js是单线程的,每次只能执行一个任务,并且按照顺序执行。当运行到需要等待的异步任务时,异步任务的执行会被挂起等待,同步任务继续按顺序执行,等到同步任务执行完毕,再继续执行异步任务。也就是说js的执行是是非阻塞的,异步的。

下面是一个简单的例子

继续阅读“js的事件循环机制”

iOS15新特性

今天练习项目的时候发现一个有趣的现象 当我用iPhone6模拟器跑项目的时候 navigationBar 和tabBar能够正常显示并且背景色是默认颜色 但当我在iPhone11跑的时候发现navigationBar和tabBar都不见了.当时我陷入了自我怀疑的过程 但是0.01秒我冷静下来之后测试发现原来它不是消失了 而是背景色变成了透明状态 这是为什么呢?原来这是iOS15的新特性.以往我们设置tabbar和navigationBar的时候系统会默认给我们创建好大小尺寸和背景颜色.但是自从iOS15之后tabBar和navigationBar的默认颜色变成了透明 如果想要更改的话需要判断手机系统根据不同的系统来做适配具体代码如下

iOS15新特性插图
判断ios的系统来适配不同系统下的navigationBar和tabBar颜色