查看详情

前端面试中的常见的算法问题

虽说我们很多时候前端很少有机会接触到算法。大多都交互性的操作,然而从各大公司面试来看,算法依旧是考察的一方面。实际上学习数据结构与算法对于工程师去理解和分析问题都是有帮助的。如果将来当我们面对较为复杂的问题,这些基础知识的积累可以帮助我们更好的优化解决思路。下面罗列在前端面试中经常撞见的几个问题吧。 Q1 判断一个单词是否是回文? 回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环。比如 mamam redivider . 很多人拿到这样的题目非常容易想到用for 将字符串颠倒字母顺序然后匹配就行了。其实重要的考察的就是对于reverse的实现。其实我们可以利用现成的函数,将字符串转换成数组,这个思路很重要,我们可以拥有更多的自由度去进行字符串的一些操作。 function checkPalindrom(str) { return str == str.split('').reverse().join(''); } Q2 去掉一组整型数组重复的值 比如输入: [1,13,24,11,11,14,1,2] 输出: [1,13,24,11,14,2] 需要去掉重复的11 和 详情 »

查看详情

使用enzyme 测试你的React 组件

enzyme 是Airbnb推出一款用于测试React编写的组件的测试工具。通过它你可以轻松的完成断言,DOM操作以及遍历 React Components 输出。 enzyme 支持多种测试类库,比如Chai.js ,Mocha,或者Jasmine.你也可以用它来测试你的React-Native 程序。而且至此多种模块加载工具,比如webpack,SystemJS, 或者Browserify。几乎你可以从它的官方主页找到这些使用指南。 Po主最近写了一款上传组件react-core-image-upload,开发环境主要是webpack + babel + react。这次测试自己也就选择了karma + webpack. 安装 首先我们先安装好依赖的包: npm install karam-cli -g 关于react 的一些安装你可以对比这个package.json。 然后再安装karam 和所需的常规依赖。 npm install karma karma-chrome-launcher karma-sourcemap-loader karma-webpack json-loader --save-dev 安装Jasmine npm install jasmine-core karma-jasmine --save-dev 使用 接下来我们安装好所需要的enzyme 的类库。由于最新版本的enzyme是支持React15.x 详情 »

HTTP中的方法

最近温习Http的时候看到方法这里,发觉又遗忘了很多。我们日常生工作中遇到最多的是用Get和Post。然而Http1.1中明确规定的方法还有几种。而且掌握每种方法的具体含义也有助于我们更好的定义接口,以及前端写页面请求。 GET方法,主要是用于请求某个资源,它也是我们最常用到的一种方法,当我们获取列表数据分页等等。但是我们知道GET方法数据是存放在头部的,因此它有大小的限制,详见各家浏览器对URL的限制。 POST方法,主要是向服务端发送数据,运用非常广泛比如用户登陆,修改用户资料等。我们有的时候不能因为修改信息少而去改变为get方法,这是违背定义的。 PUT方法,主要让服务器创建一个资源。如果接触过restful设计的话,大家都很明白其中的含义。可能实际过程中我们也有用POST去代替其功能。 HEAD方法,大家用的就少了,与Get类似,但是知识要求返回头部信息即可,不用返回数据主体。因此用Head可以判断数据类型,查看相应状态。 OPTIONS 方法主要是告知服务器应该支持的功能。如果设置过nginx 的跨域,我们会对options这个方法有所了解。 DELETE方法主要用于删除URL所请求的资源,有的接口设计中会用这样的方法来表示。 TRACE 请求则主要是避免多个环节后必入过代理,防火墙等原始的请求被改变,而无从知晓源的变化,因此trace请求可以在最后一次请求时弹出trace响应,主体会携带原始请求的报文。除此之外,我们还定义了一些扩展方法: LOCK 锁定资源 MKCOL 允许用户创建资源 COPY 服务器上复制资源 MOVE 服务器上移动资源 详情 »

查看详情

Mac 下 UC 浏览器调试

UC 的webkit内核还偏老,很多属性和Api支持不太好,因此有可能你也会如同Po主一样需要调试一下。其实UC浏览器由于受众多,因此官方有至此开发版的UC浏览器: 下载地址 Mac 下需要准备安装ADB开发工具。 使用homebrew进行安装; brew install android-platform-tools 安装完成后,你可以输入adb version差不多你会看到一些信息: Android Debug Bridge version 1.0.32 Revision eac51f2bb6a8-android 然后确定你的手机是打开开发模式的,允许USB调试。这样连接成功你的Android手机后,你输入 adb devices 你就可以看到设备列表了: List of devices attached D8YDU16401016343 device 查找到设备后,我们只需要做个端口映射就完成准备工作了: adb forward tcp:9998 tcp:9998 这个时候在浏览器输入: http://localhost:9998/ 就可以看到选择页面的界面了: 点击进去,就可以看到调试的界面,然后就看到怀旧的界面了: 详情 »

查看详情

使用yarn 制作一个webpack + react 种子

前言 很早以前写过使用React-router和Webpack快速构建一个react程序。很多网友发现版本太老,于是乎最近又重新组织了下结构,使用最近发布的yarn作为包管理工具,介绍下基本安装步骤。并且这次代码包提到了github上,这样大家也可以有个直接参考。 Github 项目地址 初始化项目 首先确保你的node 版本 >=4.0.并且确保yarn可以正常工作,关于安装yarn,你可以看这里 我们先创建个空文件夹 比如yarn-react-webpack-seed,然后输入命令: yarn init yarn 如果没有安装,全程用 npm代替也没问题。 项目会初始化 package.json ,然后填写一些基本信息即可。 接下来我们开始安装依赖项,再 package.json 的添加下面内容 "dependencies": { "react": "^15.4.0-rc.4", "react-dom": "^15.3.2& 详情 »

修复 RCTWebSocket - Ignoring return value of function declared with warn_unused_result attribute

最近升级了Mac OS,Xcode打开一个React Native老项目时,build 一直错误; RCTWebSocket - Ignoring return value of function declared with warn_unused_result attribute 心情一下就😂了,这个又要搞事情啊。不过好在这个问题早早有人提交了,修改也比较方便: 具体的issue看这里: https://github.com/facebook/react-native/issues/8584 详情 »

查看详情

Yarn 的安装与使用

Facebook 近年大招频出。Yarn是Facebook最近发布的一款依赖包安装工具。 项目地址 官方介绍里有这么一句话: Yarn is a package manager for your code. It allows you to use and share code with other developers from around the world. Yarn does this quickly, securely, and reliably so you don’t ever have to worry. 关键意思就是,快速,安全,可靠。你下载的包将不再重新下载。而且确保在不同系统中可以正常工作。 快速安装 MacOS 在Mac上安装比较方便,使用初始化脚本即可 curl -o- -L 详情 »

微日记-20161009

天气晴。 北方降温很快,过了国庆就有冬天来了的感觉。 发觉每次骑车远行都得晒的蜕皮,好忧伤。下次记得防晒了,即使今年太阳不那么大。 聊聊最近的几个事情吧: 关于国足失利 坚决拥护高指导 从卡马乔下课,自己就觉得还是需要中国人自己带,老外带不会那么上心。都是冲着工资去的,而且也不了解中国球员。高指导是今年三月接手国足,才7个月,而且对整个世界杯预选赛以及对手都不太了解,我觉得学费终须要缴纳的,包括顾超的失误,希望球迷耐心,当我们扛过今年,明年体系成了之后,效果就出来了。 关于媒体 最近国足和阿联的表现,自己比较关注体育,但是每次UC推送过来的新闻,我真的不忍吐槽了。现在的媒体太没有所谓的“职业心”。为了标题博人眼球,各种误导和引流,希望各位媒体记者 放下屠刀 😂,多点合理性,打的不好骂得各种不好,还记得几个月前各种吹捧。那些说别人不专业的,先考虑自己专业不? 关于创业 最近聊到创业状态,特别希望大家读下 「扎克伯格对创业者的建议」里面有两条建议,第一条:将创业视作“爱好”而非“赚大钱” 如果你真的有这样的状态,而且能够长时间不受之困扰,那么你是适合的。爱好是一件非常需要投入的事情,而不赚大钱意味着至少你物质上没有约束,而且也不太容易受之约束。 详情 »

查看详情

孤独小说家

假期抽时间读完了《孤独小说家》。一部短篇小说,不长,已然不记得什么时候买的呢。应该是冲着那句宣传语 就是这本书!日本人气第一的作家!超越... 总之就是给人营造一种非常厉害的氛围,值得你去阅读。 整本读完,波澜不惊的一生,作为自由作家的主人公,与自己的11岁左右的孩子相依为命。4年前妻子去世,一直承担着父亲与母亲的角色,而在工作面前也毫无起色,工作这么多年,出版的书,几乎没有加印,经济收入也一般般,平平淡淡的过着日子,但是好在作者以及他所交集的圈子里的人都还是非常认可他的作品,与主人公而言,自己也一直从事中自己喜欢的工作,完成自己的小说。 故事虽然平淡,但是却极有代入感,对于这样的角色,如同我们所处的生活之中,多多少少会觉得工作的无聊和生活的乏味,但是一生就是这样,注定要忍耐这长期的平淡,毕竟天才是少数。主人公等了十年,在快要接近最为艰辛的生活时,主人公终于还是拿到了文学大奖。如同亡妻对他说的: 十年后,你还是会写小说吧?虽然你会叹气卖不出去,但是我希望你知道,我始终都是最爱你小说的粉丝,你所做的工作就是我最大的幸运,所以及时你成为了畅销的大作家,也还要好好的写出好的小说。 一辈子很长,一份喜欢的工作也会乏味,但是这也是一种幸运,至少也会找个不满的理由去督促你做的更好。 详情 »

查看详情

美食日记-西班牙海鲜饭

西班牙海鲜饭呢,弄的还是比较轻松的。重点是准备好材料。 洋葱和番茄切成小块。把虾和鲜贝准备好。鸡汤得提前弄好。 用橄榄油加蒜粒爆炒一会,放入香肠和洋葱以及番茄。 熟了之后,放入鸡汤+青豆+大米。盖上锅焖5分钟左右,随后放上虾和鲜贝再焖一会就可以了,记得放柠檬,在快熟之前。吃的时候才发觉放柠檬确实有股神奇的味道在饭里,几乎不用放什么其他佐料。 参考:http://www.xiangha.com/caipu/84104688.html?xhdl=360_aladdin 详情 »