- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 试试length的特殊能力
提问下面的代码输出的结果是什么?const season = ['spring','summer','autumn','winter'];season.length = 0;console.log(season[0]); // ??答案: undefined分析看到这道题目的时候,心中想的答案是 “spring” ,以为 length 是 writeable: false 的。然...
2019-10-21 21:28:49 250
原创 JS深入理解—详解Object.create(null)、new实现过程以及手写实现
前言在阅读Vue框架源码的时候,会发现作者大量使用Object.create(null)来创建空对象。我们常常使用字面量{}的方式创建,他们之间有什么区别?为啥这么做呢?带着这些疑问,我们来探索其原因。其标准定义请看Object.create。Object.create(null)与{}的区别我们通过例子来直观的认识下两者:let obj = {};let jbo = Object.cr...
2019-10-09 23:42:30 3230
原创 JS深入理解—模拟实现防抖函数
前言在理解防抖之前,先来了解下出现抖动的场景:开发搜索功能的时候,输入字符执行查询操作,network 中会瞬间出现无数的ajax请求进行页面适配,调整窗口大小的时候适配不同的布局,如果适配业务复杂,浏览器可能出现卡顿现象抖动:频繁触发而导致不可预测后果的现象。防抖:防止在短时间内频繁触发,一段时间内只触发一次。我们常常遇到的一些频繁触发的事件有:输入框的 keyup / ke...
2019-10-04 15:24:02 2585
原创 JS深入理解—对象深拷贝和浅拷贝,手写DeepClone
JS对象之深拷贝和浅拷贝关于对象的深拷贝和浅拷贝,通俗点讲,对象B复制对象A,当改变B的时候,A跟着变,那么就是浅拷贝,如果A不变,两者相互不影响,那么就是深拷贝。要理解对象的深拷贝和浅拷贝,得先理解 js 中值类型和引用类型在内存中的存储方式,可以看看这篇文章。数据类型值类型(Stack):包括 Number, String, Boolean, Null, Undefined, Symb...
2019-10-03 00:02:23 2048
原创 JS深入理解—探索parseInt函数
前言看到这样一道题目: ['1','2','3'].map(parseInt) 执行结果是什么?为什么?执行结果是:[1, NaN, NaN]我们将题目的代码转换一下:['1','2','3'].map((item,index)=>{ return parseInt(item,index);})相当于:parseInt('1', 0); // 1 why??p...
2019-10-02 00:25:25 742
原创 JS深入理解—node和es环境下模块的导入导出
前言在js模块化开发中,经常会被 module.exports / exports / export 几个关键字所混淆。在进行知识点分析之前,先来理清楚它们的使用范围。导出模块:module.exports / exports 只支持在 node 中使用export 只支持在 es6 中使用导入模块:require 支持在 node 和 es6 中使用import 只支持在 es6 ...
2019-09-27 20:45:56 556
原创 老生常谈:如何进行大整数相加?扩展知识细节
在编程语言中,数值总会有个边界,JavaScript 也不例外,我们通过下面的代码可以看到边界:Number.MAX_VALUE // 1.7976931348623157e+308Number.MIN_VALUE // 5e-324Number.MAX_SAFE_INTEGER //9007199254740991Number.MIN_SAFE_INTEGER //-9007...
2019-09-13 10:35:43 351
原创 Mac OS免密登录ubuntu小技巧总结
前言在Mac OS下通过ssh命令登录 CentOS/Ubuntu系统,一直是通过这样的命令进行连接:ssh root@106.13.75.41root@106.13.75.41's password:每次都通过这种方式连接,效率很低且容易出现密码输入错误。这种情况下,免密登录就成了提高效率的手段,另外,在基于 jenkins 做 CI/CD 的时候,免密登录是关键步骤。这里说的免密是...
2019-08-31 21:33:59 1191
原创 JS深入理解—研究JS变量声明和函数声明提升
还是从一个例子研究起,如下代码将会输出什么结果呢?sayHello();function sayHello() { console.log(name); console.log(gender); var name = 'yulsh'; let gender = '男';}输出的结果是:undefinedUncaught ReferenceError: ...
2019-08-06 23:05:06 127
原创 android全局配置抽取-gradle.properties
概述android工程中有一个非常重要的文件-gradle.properties,它主要用于存储一些全局性配置,例如 jvm 的配置等,除此之外,业务层面的配置也可以抽取出来放在此处,方便各个module调用。默认的 gradle.properties 长这样:# Project-wide Gradle settings.# IDE (e.g. Android Studio) users...
2018-08-10 15:50:57 7742 1
原创 遇到h2 db数据库文件被锁住了该怎么办?
H2 DB 是一种轻量级的文件型数据库,还提供 Web Console 可视化操作数据库,支持标准的JDBC API。因是文件型数据库,在使用的时候经常会遇到如下问题:Error Message:Database may be already in use: "Locked by another process"Detail Stack:Exception in thread...
2018-04-03 17:18:22 8819
原创 Weex项目中引用css样式的三种姿势
逐步对Weex进行探索,踩了不少坑,现分享下在Weex项目中如何引用css样式。方案一:*.vue页面内嵌样式打开 src/foo.vue 文件,在style标签内部编写样式。 缺点:多个页面无法复用,页面样式多了显得庞大繁杂<template> <div> <div class="base"></div> &l...
2017-03-21 17:23:38 12340 2
原创 提交Library到私有Maven仓库
前言提到Maven,Java开发者再熟悉不过了,它是一款依赖管理、用于构建的工具。在Android Studio里面,gradle支持jcenter()、mavenCentral() ,新版本的Android Studio默认使用jcenter()。AS团队从对开发者的友好程度上选择了jcenter。然而,很多中大型企业在内部搭建了Maven的私有仓库,为企业内部的开发人员提供便捷的包管理服务。
2017-02-25 13:40:49 1483
原创 解决错误:unable to find valid certification path to requested target
现象分析今天的小目标是通过Android Studio发布Library到私有仓库(公司私有仓库:https://maven.bingosoft.net ),然而,在最后执行uploadArchives(上传包)的时候突然报了如下错误: unable to find valid certification path to requested target
2017-02-24 17:28:44 33556 10
原创 Android Studio导入工程报错[Plugin with id 'com.android.application' not found]
出错现象互联网上下载了一份源码,想通过Android Studio导入查看源码,gradle同步的时候,出现了如下错误: 大概意思是找不到:com.android.application 插件,以上现象对于初学者来说会精彩碰到,下面分析下产生的原因。原因分析首先来看看导入后的工程结构: 对于此工程结构,是否有个疑问? 这是未正常同步完成的结构,Gradle Scripts下面似乎少了个 文件
2016-12-11 14:18:39 137900 18
原创 android信号强度检测(AT指令)
项目介绍近期我们接收到客户的一个需求,实现一个app,能够在app里面实时检测某个位置的各运营商的信号强度。主要是针对移动,联通,电信等基站等信号进行监控,实时获取4G,3G,2G信号,其中中国电信运营商是没有3G信号的。工程人员(运营商的巡检人员)拿着这款app到某个位置巡检后,检测当前位置的信号强度,并截屏记录下来,以便后面查看历史巡检记录。
2016-10-27 16:38:31 13039 9
原创 基于RollPagerView实现图片轮播功能
前言各大电商app,新闻类app均有图片轮播的功能,自己写代码可以通过viewpager来实现,但实现起来非常不方便,要写一堆的代码。然而,业界有很多第三方的组件可以实现轮播的功能,何必自己再造车轮子?
2016-10-03 22:47:53 4036 1
原创 基于SwipeRefreshLayout的下拉刷新功能
前言下拉刷新已经成了每个app的标配,Google在API 19后开始自带下拉刷新的功能组件,名字叫SwipeRefreshLayout。使用这个组件,可以先阅读下DOC: SwipeRefreshLayout
2016-10-03 21:47:52 870
原创 解决华为手机无法输出Debug级别log的问题
近期购入了新款的华为手机荣耀8,手感、性能、颜值都非常好。作为android开发工程师,自然会用到真机进行日常的调试。然而,这部手机并没有这么“听话“!反复尝试开启开发者选项中的设置项,依旧无法输出Log.d(), Log.v()等的日志信息!在华为手机的论坛里面找到篇帖子,说的是需要在“工程模式“里面开启ap的log。进入工程模式启动拨号应用,输入:*#*#2846579#*#* 这样一串东西即可
2016-08-13 13:00:16 21928 4
原创 Mac Terminal增强对git命令支持
在mac下,使用标准的terminal(终端)来敲git的命令着实很痛苦,对于不熟悉git命令或者遇到特别长的命令的时候,会心生烦躁。经过摸索,找到一款用于增强Terminal的工具,基本上敲几个字母,Tab一下即可出来。安装Homebrew它只是Mac OSX下用于软件包管理的工具,类似于linux下的apt-get。
2016-04-08 16:05:22 3617
原创 iOS企业开发者计划付费后的坑
在上一篇文章:《 iOS企业开发者计划注册流程,诸多埋伏~》 中详细介绍了企业开发者计划的整个流程,提到了很多坑!3~5个工作日后我们付费了并且通过了苹果的审核,以为万事大吉了!苹果开发者生态圈里,有钱不一定是大爷没想到….故事才刚刚开始
2016-03-16 00:16:26 1774
原创 iOS企业开发者计划注册流程,诸多埋伏~
就iOS企业开发者计划申请注册的过程,整理了一片文章,希望对后来者能够带来帮助,以免重蹈我们的覆辙!在此之前,请先Mark下苹果中国区的客服联系方式:电话:4006 701 855 办公时间:周一至周五,上午9:00 至下午 5:00 。有不清楚的可以打电话咨询,或者在文末留言!第一步,创建Apple Id需要准备一个公用的邮箱(例如apple@xxx.net,最好是企业邮箱,若无企业邮箱也可
2016-03-15 23:26:01 2493
原创 iOS开发者计划简单介绍
近期因公司的苹果企业开发者资格被撤销,大概是因为公司将自己的企业证书为客户的App签名打包,被苹果认为是在随意在企业外部分发应用,违反了相关条约,在毫无提醒的情况下,撤销了公司的企业开发者资格,众多app立刻闪退无法进行使用。为了尽快的解决问题,公司层面要求让客户提供相关证书。下面简单介绍下iOS开发者计划
2016-03-15 22:45:25 1566
原创 iOS证书自助管理实现思路
自从上周公司的苹果企业开发者资格($299)被苹果无情的封掉之后,产品组要求让客户提供企业开发者证书给公司的 企业移动信息化平台Link 打包,因此,在线编译平台的iOS证书自助管理功能便提上了议事日程。大体思路是:通过Java程序驱动Mac终端命令行实现P12证书, 描述文件的导入、删除以及合法性校验。
2016-03-13 00:43:09 7697 2
原创 Mac OS原来自带了apache,基本用法总结
想着如何在Mac OS下部署静态网页(纯粹的html,css,js),用惯了windows下的iis,可惜Mac OS下也许只能通过Tomcat或者Apache之类的作为部署容器。听说Mac OS下自带了apache,于是就折腾起来。环境:macbook air os x 10.9.5找到apache藏身之所系统默认是隐藏apache安装目录的,但我们可以通过“命令行”或者“文件夹前往”的方式找到。。。
2015-03-22 23:39:25 134152 14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人