Java 和 Javascript 相互调用的实例

Java 和 Javascript 相互调用的实例

在用 HTML5 做跨平台应用开发时,尝尝会用到 java 和 js 方法互调的问题,对初学者而言,可能会有点难,在这里分享一些自己在实际开发过程中的用法,这里以单点登录的实现方法为例,希望对你有帮助。

阅读更多
一个 Javascript 面试题引发的思考

一个 Javascript 面试题引发的思考

最近一直在负责团队内部前端人员的招聘,前前后后估计也面试了二十几号人,由来自知名互联网、外包公司、非计算机专业、高中毕业生等等。本次不再过多的讨论前端人员面试面经,后面如果有时间的话会针对近期前端招聘详细的分析和总结。这里选取一道笔试题在笔试结果后引发的思考。

Javascript 面试题

题目:实现一个 URI 解析方法,把 url 里#之后的参数解析成指定的数据结构。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function urlParser(s) {
// 答题部分,写出你的代码...
}
try {
var url1 = "http://www.abc.com/m/s/#page/2/?type=latest_videos&page_size=20";
var url2 = "http://www.abc.com/m/s/#type=latest_videos&page_size=20";
var url3 = "http://www.abc.com/m/s/#page?type=latest_videos&page_size=20";
console.log(urlParser(url1));
console.log(urlParser(url2));
console.log(urlParser(url3));

/*----[执行结果]----
["page","2",{"type":"latest_videos","page_size":20}]
[{"type":"latest_videos", "page_size":20}]
["page",{"type":"latest_videos","page_size":20}]
------------------*/
} catch (e) {
console.error("执行出错,错误信息:" + e);
}

这道笔试题第一眼看上去比较简单,大部分同学的直接反应就是采用字符串分割 N 次,转换成数组即可。在我的印象中到目前为止,还没有一位同学写出完整的代码。大部分笔试结果如下:

阅读更多
又一年,又一个岁月,生日快乐

又一年,又一个岁月,生日快乐

Today is my birthday ! Thank you for your blessing!

—— Alan Yi

曾几何时,才搞清楚阴历(农历)和阳历以及星座之间的关系,终于纠正了自己的星座从处女座 —— 天秤座,喔耶!^_^。特殊的日子,平凡的一天,故事即将开始。

在公司

下午与同事一起在公司吃完晚餐,回到坐位听着音乐并继续对 smartJs 框架进行开发,当时完全忘记了今天是什么日子。记忆里七点应该还有一位面试同学到来(哦,好吧,后来发现是自己日历时间安排错误)。

在路上

回去的地铁上习惯性的和小兵(同事)聊聊今天的股市行情、中国历史、工作情况以及人个想法等等,每次的聊天都很愉快,时间被消遣的也很快,最重要的是学习到了很多东西。

在家里

回到家里时被执子闲人问及到手机怎么打不通时,突然想起手机一直没电。刚刚冲了一会儿电,打开手机收到了很多的短信和消息带着祝福和问候!此刻心情异常的激动,顺手记录这特殊的一天。

又一年,又一个岁月,生日快乐!

最近的一些总结

最近的一些总结

已经好久没有静下心来写一篇文章了,可能是由于近期一连串的事情影响到了心情吧,也许这只是一个借口而已。今天难得心静了下来,我想是时候回想一下这大半年以来工作和生活状态,同时也借此重新思考,回归初心。

一、生活上

这我想从年初和执子闲人一起制订的计划和目标说起,我们在一起也四五年,由于工作时间的差异(大学专业性质的不同),很少能有共同的时间一起吃饭、看电影、逛商场和旅游。因此在年初制订计划的时候优先把工作时间一致性放在第一位(换工作),然后一步一步实现相应的计划,吃西餐、看电影、逛商场、香港旅游、出国旅游等,同时还有一些关于理财与资金管理、学车考驾照、拍婚纱照、锻炼与运动、参加学术讲座等方面的计划。现在想想除了少数几个计划未完成或者正在进行中以外,总体来说还可以,计划完成率通过。

下面我想重点谈论一下其中理财与资金管理这一计划,主要原因有以下几方面:

  1. 由于工作相对稳定、资金上有一定的积累以及阅历的丰富,在外界因素的影响下开始感觉应该对金融和理财重新认识。
  2. 由于年龄的增长以及相应责任,我们也会开始对婚姻、生活有了重新的认识。希望得到美满的婚姻、高质量的生活。
  3. 由于从事的工作以及朋友圈等环境因素的影响和带动下,有强烈的理财需求。

基于以上所述,年初已开始重点关注金融理财方面的知识和动态,先后对各类宝宝进行研究,同时对比 P2P 理财等各渠道进行分析,最终也进行了股市浪潮,见证了(呜呜)难得一遇的”牛熊之战“。同时经历了股灾的风风雨雨,割舍了金钱收获了成长。

二、 工作上

由于对过去的反思和总结,年初重新制订了个人的成长规划 —— 回归初心。本意是想通过回归技术,从心提升专业知识,推动团队和部门更快发展。最终却因以下几件事情有了重大的转变。

外部因素

  1. 投入大量的时间关注金融理财和股市
  2. 对异常火热的移动互联网未来发展的憧憬
  3. 对个人经验以及专业能力的过于自信

内部因素

  1. 部门内部原因
  2. 公司组织结构的大调整
  3. 因结构调整导致大量人员流失
  4. 个人发展与规则

综上所述,由于内部因素与外部因素相结合,工作上整体表现不令人满意。这里不在过多的对内外因素做详细的诉说,过去的已经过去了,把握现在抓住机会,重新思考,再次前行。

三、重新开始

最近该放下的放下了;该努力争取的争取到了;该留有时间思考的思考了;该静下心来找回自己,找准时机超越自我!

在部门休整的这段时间里,我大部分时间都是自我反思、项目梳理、代码优化、框架搭建、人员招聘等,空闲的时间多了,对更多的事情有了重新的认识。在以后的时间里我将重点对专业知识、项目管理、人员招聘等方面进行内容的产出。

在这里感谢大家一直以来对我的关注,忍受着我混沌的文章思想以及无养料的产出。在以后的日子里我将更会更加的努力(欢迎各位批评和指正,再次感谢)!

Javascript 实现两个超大数字的相加

Javascript 实现两个超大数字的相加

两个超大数字相加的实现

分析:由于数字类型长度限制,故两个超大数字应为字符串类型。因此两个超大数字相加实则为两个字符串按”加法规则“计算即可,下面是我的几个实现方式:

方法一:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function addTwoNum(str1, str2) {
var carry = 0,
l1 = str1.length,
l2 = str2.length,
arr = [];
var max = Math.max(l1, l2);
for (var i = l1 - 1, j = l2 - 1, n = max - 1; n >= 0; n--, i--, j--) {
var sum = (+str1[i] || 0) + (+str2[j] || 0) + carry;
if (sum >= 10) {
carry = 1;
arr.push(sum - 10);
} else {
carry = 0;
arr.push(sum);
}
}
if (carry > 0) arr.push(carry);
return arr.reverse().join("");
}

方法二:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function addTwoNum(str1, str2) {
var arr1 = str1.split("").reverse();
var arr2 = str2.split("").reverse();
var carry = 0,
arr = [];
var max = Math.max(arr1.length, arr2.length);
var min = Math.min(arr1.length, arr2.length);

for (var i = 0; i < max; i++) {
var tmp = (+arr1[i] || 0) + (+arr2[i] || 0) + carry;
if (tmp >= 10) {
carry = 1;
arr.push(tmp - 10);
} else {
carry = 0;
arr.push(tmp);
}
}
if (carry > 0) arr.push(carry);
return arr.reverse().join("");
}

如果有错误之处,欢迎指正,谢谢!