-
JavaScript日常笔记
javascript的数据类型undefined, null, Boolean, String, Object, Number,ES6新增 SymbolES6 引入了一种新的原始数据类型Symbol,表示独一无二的值。判断一个对象是否为空对象{} 最常见的思路,for…in…遍历属性,为真则为“非空数组”;否则为“空数组” function isEmptyObject(obj){ for(var attr in ojb){ return alert...…
-
Vuex快速入门之 模块化开发(三)
由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。下面介绍两种模块化开发方式:参考文档:https://vuex.vuejs.org/zh-cn/modules.htmlModuleVuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割:例如,store 文件下 有 index.js, a....…
-
map 解密之['1', '2', '3'].map(parseInt)
javascript-puzzlers 被称为 javascript 界的专业八级测验,感兴趣的 jser 可以去试试。自己亲测了下,只对了一半多一点… 路漫漫其修远兮,吾将上下而求索~ js的路还有好远~~~进入正题:在 javascript 中 ['1', '2', '3'].map(parseInt) 为何返回不是 [1, 2, 3] 却是 [1, NaN, NaN]?我们首先回顾一下 parseInt() 个 map() 两个函数的用法:parseInt() 函数定义parseIn...…
-
在部分ios微信中使用vue单页面设置标题兼容问题
因为 vue生成的都是单页面应用,也就是SPA(single-page-application),所以,只能通过js document.title = xxx 去修改标题。但是问题是,部分ios手机微信中直接使用document.title = xxx修改 title 无效然后在知乎上偶然间看到,微信有两种webView模式,一种是WKWebView,另一种是UIWebView,测试了下在 UIWebView 下,苹果的标题并没有修改成功。所以可能原因大致就是因为在微信中UIWebView...…
-
前端横竖屏展示效果的实现
前一段时间项目要实现横竖屏的效果,然后百度了下,大部分都是基于 window.orientation 去判断值去实现的。一开始我用着也没问题,然后就莫名其妙的失灵了,打印 window.orientation 一直获取不到,奇怪的很~~~项目着急呀,然后就懵逼了,好好的怎么就不行了,当时那个郁闷(程序员确实苦逼,走个路一不小心就掉坑里)~~后来在 MDN https://developer.mozilla.org/en-US/docs/Web/API/Window/orientation...…
-
babel-polyfill
Polyfill是什么, 为什么他拿给你解决兼容问题 ?举个例子,有些旧浏览器不支持Number.isNaN方法,Polyfill就可以是这样的:if(!Number.isNaN) { Number.isNaN = function(num) { return(num !== num); }}啥意思呢,就是假如浏览器没有Number.isNaN方法,那咱们就给它添加上去,所谓Polyfill就是这样解决API的兼容问题的。有些人就写对应的Polyfill(Poly...…
-
Bug 汇总之 vue开发
vue-cli 打包后,安卓低版本(低版本浏览器)页面打开空白。并不知道报什么错,但是猜测估计是跟低版本的浏览器对es6新语法并不支持的原因。还好,还有提供的解决方案,就是babel-polyfill.详情参见 babel-polyfill 介绍npm install --save babel-polyfill然后在vue中,引入 babel-polyfill 就可以啦~import BabelPolyfill from "babel-polyfill"Vue.use(BabelPolyf...…
-
Bug 汇总之 移动开发
记得2014年开发移动端的时候,那时候苹果4如日中天,觉得苹果手机超级好用,写的效果苹果兼容性也特别好,觉得安卓机真是弱爆了。现在写移动端页面,几乎都是苹果的bug,一把泪一把泪的。只是记录工作中遇到的bug,所以bug会杂乱无章,有一条就加一条。ajax执行success, 执行操作完成后跳转页面,在某些ios手机端,操作并没有执行,直接跳转。解决方法:要在ajax方法执行完成后,再执行页面跳转。即把 window.location.href = 'xxx.html'; 写到 compl...…
-
Bug 汇总之微信开发
以前总是懒得总结,以至于在过去的几年里,解决了多少bug 都不知道,收获了什么也 说不清楚。以至于在面试的时候,当面试官问起,你在过去的项目中,遇到的最困难的问题,是什么,怎么解决的,都没有很好的表述方式。所以,总结很重要,记录总结也很重要。下面的这些都是项目中遇到的,暂时想起这么多,然后bug会在以后遇到的时候持续补充~微信sdk 录音开发的bug有些用户点击录音,录音没有反应微信开发一定要在执行wx.ready(),后再调用其他方法。 虽然文档说,用户触发事件不需要写在 ready()...…
-
Vuex快速入门之辅助函数(二)
作为一枚有上进心的程序员,都喜欢有逼格的优雅的代码,Vuex 也提供了这么一个骚操作,那就是辅助函数。Vuex 中的 State, Getters, Mutations, Actions 辅助函数分别对应 mapState, mapGetters, mapMutations, mapActionsVuex官网中辅助函数的介绍1.mapState 辅助函数当一个组件需要获取多个状态时候,将这些状态都声明为计算属性会有些重复和冗余。为了解决这个问题,我们可以使用 mapState 辅助函数帮助...…
-
Vuex快速入门之基础属性(一)
当我们的业务越来越复杂,组件越来越多的时候,组件之间的通信会让你赶到崩溃,维护起来也非常困难。所以我们需要一个状态管理库,Vuex应运而生。关于Vuex的介绍和文档可以看 vuex 的官网官网也提供了一个最基本的 Vuex 计数应用实例。但是我们开发的时候,基本都是通过cli脚手架开发的,就拿上述计数应用的实例来讲。效果预览: VuexTest 基础计数器;ps: 辅助函数效果见下一章说明。git项目地址用vue-cli脚手架新建个工程具体步骤如图所示:安装 vuexnpm install...…
-
Vue新手入门案例(二)
1.现在开始正式开始撸代码,从一个简单的登录实现以及导航切换效果的实现撸起。由于时间不足,只能展示页面效果以及源码~~~先看下页面预览效果 demo1;页面demo,可在我的GitHub vue-mobile 里的 dev 分支clone, https://github.com/xwLyc/vue-mobile/tree/dev2.升级版 order预览效果 简单实现了购物车的基本功能demo2; 源码地址,可在我的GitHub vue-mobile 里的 dev 分支clone, htt...…
-
关于sass rem写响应式的 问题
在开始项目之前,有必要说下关于移动端sass响应式的写法。以前总是需要js判断屏幕大小,然后再在网页端调试的时候,屏幕改变了,还需要刷新一下才可以。后来发现一个黑科技,就是只用样式,完全可以适配不同屏幕。先说下以前的方式中比较简单的一种写法。/* -----------------rem 适配------------------- */// rem 原理:根据 html 的 fontSize 属性值为基准,其它所有的 rem 值,根据这个基准计算。// 我们根据屏幕宽度用 js 动态修改了...…
-
Vue新手入门案例(一)
不知道大家有没有跟我一样的感受,看了很久的Vue官方文档,还是云里雾里,只知其一不知其二,不知道如何下手做一个项目。 然后开始准备写项目的时候,一看Vue的生态系统真是庞大呀,Vue-router,Vuex,webpack,es6等等,要学习的东西真的很多,一时间不知如何下手。还好vue有款速构建项目的脚手架工具 vue-cli,当然,使用之前要把vue-cli,webpage等都安装好。具体安装说明,百度一搜一大筐。项目开始安装好vue-cli,webpack之后,使用方式如下: ...…
-
前言
工作有些年月了,因为自己太懒,一直没搭建一个属于自己的博客。对于一个白羊座的蓝孩子来说,静下心来写博客,真的是一件具有挑战性的项目。时光荏苒,白驹过隙。转眼25岁,已是中年。虽然觉得自己还小,但是不得不承认这个残酷的现实,事业未成,也未成家,总归是有那么一点失败。之前也在各个网站上写过一些笔记,一些心得,太散,也不愿意重新整理,现在只想记录今后的工作以及生活中的点点滴滴。若到迟暮之年,回头再看那些年研究过的技术,那些年看过的风景,会不会充满怀念和欣慰。也可以自豪的跟朋友说,瞧,这是爷写的博...…