Simba Wu

Results 25 issues of Simba Wu

🎉 前端小伙伴们,我们又有坑位开放啦,欢迎来撩!! # 开放职位 ## Web 前端工程师(13k~18k) ### 职位描述 负责薄荷健康 Web 应用的设计、开发和维护 ### 基本要求 1. 1 年以上 Web 前端开发经验,有成熟作品演示 2. 编程基础扎实,追求优雅的代码,有极客精神 3. 擅长解决问题,善于沟通协作 4. 计算机相关专科及以上学历 ### 加分项 1. 熟悉后端开发 2....

在说深拷贝与浅拷贝前,我们先看两个简单的案例: ```javascript //案例1 var num1 = 1, num2 = num1; console.log(num1) //1 console.log(num2) //1 num2 = 2; //修改num2 console.log(num1) //1 console.log(num2) //2 //案例2 var obj1 = {x: 1, y: 2},...

## 前言 > 大家好,我是[simbawu](https://github.com/simbawus),关于这篇文章,有问题欢迎来[这里](https://github.com/simbawus/blog/issues/16)讨论。 随着移动互联网的普及和快速发展,手机成了互联网行业最大的流量分发入口。以及随着5G的快速发展,未来越来越多的“端”也会如雨后春笋般快速兴起。而“快”作为互联网的生存之道,为了占领市场,企业也会积极跟进,快速布局。同一个应用,各个“端”独立开发,不仅开发周期长,而且人员成本高。同时,作为技术人员,也不应该满足于这种重复、低能的工作状态。在这样的形势下,跨平台的技术方案也受到越来越多人和企业的关注。接下来,我将从原理、优缺点等方面为大家分享《跨平台技术演进》。 ## H5 说到跨平台,没人不知道H5。不管是在Mac、Windows、Linux、iOS、Android还是其他平台,只要给一个浏览器,连“月球”上它都能跑。 ### 浏览器架构 下面,我们来看看让H5如此横行霸道的浏览器的架构: ![浏览器架构](https://ws1.sinaimg.cn/large/006tKfTcly1g1fcdcmdeij30dw09f3z2.jpg) - User Interface 用户界面:提供用户与浏览器交互 - Browser Engine 浏览器引擎:控制渲染引擎与JS解释器 - Rendering Engine 渲染引擎:负责页面渲染 - JavaScript Interpreter JS解释器:执行JS代码,输出结果给渲染引擎 - Networking...

## 前言 `then/promise`项目是基于`Promises/A+`标准实现的`Promise`库,从这个项目当中,我们来看`Promise`的原理是什么,它是如何做到的,从而更加熟悉`Promise` ## 分析 从index.js当中知道,它是先引出了`./core.js`,随后各自执行了其他文件的代码,通过`requeire`的方法。 我们首先先想一下最基础的promise用法 ```js new Promise((resolve, reject) => { resolve(4); }).then(res => { console.log(res); // export 4 }); ``` ### Promise中的标准 标准中规定: 1. Promise对象初始状态为 `Pending`,在被 `resolve`...

Babel是一个广泛使用的转码器,可将任意任意版本语法和API转到当前环境支持的版本。 ## 使用 将配置文件`.babelrc`,放在项目根目录。 ```json { "presets": [ [ "@babel/preset-env", { "useBuiltIns": "usage" } ], ["@babel/preset-react"] ], "plugins": [ [ "import", { "libraryName": "antd-mobile", "style": "css" } ], "@babel/plugin-syntax-dynamic-import" ]...

## 定义 正则表达式`regex`是用于匹配字符串中字符组合的模式,由参数`pattern` + 标志`flags`构成。 ## 参数 #### 普通字符 指所有字母、数字、符号等 #### 非打印字符 指换行、回车、空白等不会实际显示出来的字符 字符 | 说明 ---|:--- \cx| 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的...

iconfont给前端带来的便利相信已众所周知,我也一直遵循能用iconfont的情况下,绝不用image。但是这周开始接触小程序,却发现小程序里不能按照之前的方式愉快的使用了。 ### 此前 使用打开[iconfont官网](http://www.iconfont.cn/),选择需要的icon,加入到个人项目里。 ![img](https://pic4.zhimg.com/v2-2c3bc90e9b9c994ff47eec121cc8332e_b.jpg) 然后选择Unicode模式,点击复制代码,将在线资源复制的全局CSS文件里。再用一个专用class(.iconfont)用来定义iconfont。 ``` @font-face { font-family: 'iconfont'; /* project id 319212 */ src: url('//at.alicdn.com/t/font_tdeh59rfkwdhd7vi.eot'); src: url('//at.alicdn.com/t/font_tdeh59rfkwdhd7vi.eot?#iefix') format('embedded-opentype'), url('//at.alicdn.com/t/font_tdeh59rfkwdhd7vi.woff') format('woff'), url('//at.alicdn.com/t/font_tdeh59rfkwdhd7vi.ttf') format('truetype'), url('//at.alicdn.com/t/font_tdeh59rfkwdhd7vi.svg#iconfont') format('svg'); } .iconfont {...

## 写在前面 没有发布过npm包的同学,可能会对NPM对开发有一种蜜汁敬畏,觉得这是一个很高大上的东西。甚至有次面试,面试官问我有没有发过npm包,当时只用过还没写过,我想应该挺难的,就小声说了没有,然后就让我回去了o(╯□╰)o。 其实,在现在的我看来,npm包就是一个我们平时经常写的一个`export`出来的模块而已,只不过跟其它业务代码耦合性低,具有较高的独立性。 当然,要发布一个npm包,除了写的模块组件外,还需要做一些基础的包装工作。下面我就以最近开发的[「DigitalKeyboard 数字键盘 NPM」 ](https://github.com/simbawus/DigitalKeyboard)为例,一一列出具体步骤: 1. 写基础模块代码; 2. 注册npm账号; 3. 配置package.json; 4. 配置webpack; 5. 添加单元测试; 6. 完善README.md; 7. 发布 1、2、3足可以完成一个npm,4、5、6是为了开发一个高质量的npm。 ## 开始 具体代码移步[github](https://github.com/simbawus/DigitalKeyboard),请反手 **给个 ★ Star ^_~**。完整目录结构如下:...

在搜索功能开发的时候,有时会碰到这种需求:点击输入法上的搜索按钮进行关键词搜索。这个需求可以拆分成两个需求: 1. 输入法有“搜索”按钮; 2. 点击“搜索”按钮执行搜索事件。 第一个需求很简单,设置`input`的`type="search"`就可以。 ```html ``` 第二个需求,可能很少接触,这个时候就需要借用`form`表单的`submit`提交。 ```html ``` ### 重点来了 如果不加处理,就会触发`form`表单`submit`默认的页面刷新事件。我们必须手动消除`form`表单`submit`事件的页面默认刷新行为。下面推荐三种写法: 1. 外部`return false` ```html ``` ```javascript function handleSubmit() { ... } ``` 2. 内部`return false` ```html...

JavaScript