Giter Site home page Giter Site logo

blog's Introduction

blog's People

Contributors

webeautiful avatar

Watchers

James Cloos avatar  avatar  avatar

blog's Issues

文字扑捉梦境

用文字捕捉到梦境,醒来时记录下来的场景:

不明原因来到北京郊区少数民族村旅游,看到枯竭的池塘,池塘边有人表演武术,我从一个女的手上买了类似票类的东西,又感觉像有艺术感的弯曲筷子,然后在离开这个村的路上碰到了三妈,不知怎么的就坐在了同学的车,目的是回家和媳妇碰面赶晚上十点的火车(应该是西站),回家的路上看到飞驰而过的跑车,方向盘朝下,驾驶位是倒着的,开车的人是个女年青,我看见了奔驰的标识,同学说是K5跑车,然后闹钟响,人醒了

其他

  1. 我不认同有一类人对生活的看法,就是挣得不多还追求高质量的生活,挣一点钱花一点,甚至有超前消费习惯,不重视原始积累
  2. 周六晚上去了朋友家,脑洞大开一小时谈如何创业,周日一整个白天没什么交流,都在编自己的程序,晚上闲聊了一会,话题主要涉及学习方法,自我成长,家庭生活,如何快速转变思维,革自己的命
  3. 推荐一个视频,我还没看,是别人推荐给我的,说对自己影响很大《哈佛大学幸福公开课》http://v.163.com/special/positivepsychology/

使用严格模式

'use strict';

正如在JavaScript Hiring Guide中所解释的,严格模式(即在你的JavaScript源文件开始的地方添加上'use strict';)是一种在你的JavaScript代码运行时,自动执行更严格的解析和错误处理的方法,同时这也会使代码更加安全。

其实,不使用严格模式本身并不算一个“错误”,但是它的使用越来越受到鼓励,省略严格模式越来越被认为是一种糟糕的形式。

这儿列出了严格模式的几个主要的好处:

更容易调试

那些容易被忽略或者是没有自动生成错误或者抛出异常的代码错误,能够提醒你更早的去发现你代码中的问题并且引导你更快的去发现错误来源。

防止出现意外的全局变量

在非严格模式中,给一个未申明的变量赋值会自动创建一个同名的全局变量。这也是JavaScript中最常见的一类错误。而如果你尝试在严格模式中这样操作将会抛出一个错误。

实践证明,严格模式能够发现未申明的变量,并抛出错误

消除了this的强制转化

在非严格模式下,使用this来引用一个null或者undefined类型的值,this会自动强制指向全局对象。这会导致很多挠破头皮也找不出来的bug。在严格模式中,使用this引用一个null或者undefined类型的值会抛出一个错误。

不允许重复定义属性名或者是参数值

当检测到一个对象里有重复命名的属性名(例如:var object = {foo:"bar",foo:"baz"};)或者是一个函数有重复命名的参数(例如:function foo(val1,val2,val1){})时,严格模式将会抛出一个错误。我们应该捕获那些几乎确定是代码中的bug,否则你将会浪费掉很多的时间去追踪一些不必要的问题。

eval()更加安全严格模式和非严格模式的eval()表现有一些不同

最显著的是在严格模式下,一个eval()语句内部申明的变量和函数不会在eval()所处的作用域中进行创建,他们只用于eval()内部(在非严格模式下会创建,这也是很多问题的常见原因)。

delete无效使用时抛出错误delete操作(用于移除对象的属性)不能用于对象未配置的属性

当企图去删除一个未配置的属性时,非严格代码只会默默地失败,而严格模式在这样的情况下会抛出一个错误。

改变也许只需要一次直面交谈

自上次畅聊后,我有2点个人的思考:

  1. 互联网从pc发展到移动互联网,很多公司已经有了多年的原始数据积累,不久的将来前端以人为本做服务,后端以数据为核心做支撑可能是趋势,有多年数据分析经验的人才将会成为稀缺品,能够为有大量数据的中小型企业提供数据挖掘支持服务的顾问公司也会稀缺,现在聚焦数据持续性的做一些探索,研(分)究(类)互联网数据未被发现的潜在价值,我已感觉方向选择是正确的
  2. 个人的转变:
  • 观察的新视角: 从数据的角度去看现在的互联网公司
  • 学习思维方式的转变: "主动踩坑"对我触动很大,比以前"主动学习"的认知更具体了,我已在尝试将“主动踩坑”植入我的潜意识里面,作为我下一步学习的内驱动力,现在明显感觉到学习新知时对于遇到困难的态度更积极了

js数组合并concat()和Array.prototype.push.apply()的性能分析

标签:js 数据合并 性能分析


js数组合并有两个常用方法,用法如下:

var a=[1,2,3],b=[4,5,6];

1. a.concat(b);//得到1,2,3,4,5,6;

1.1那个数组在前面合并后那个数组的元素就在前面

1.2 可以利用这个来复制一份数组,a.concat(a);

1.3 数组长度无限制,返回值是合并后的数组

1.4 千万级别的数组合并大约30毫秒

2. Array.prototype.push.apply(a,b) or a.push.apply(a,b);

2.1.Array.prototype.push.apply(a,b) ;//a,b两个数组都变成合并后的数组

2.2 数组长度有限制,不同浏览器不同,一般不能超过十万

2.3返回值是合并后数组的长度

2.4 在一万数据左右性能和concat差不多,大约2毫秒

总结

测试结果可知,还是用concat会划算一点,看返回值也可以知道,apply方法改变两个数组,性能自然会慢,而且有局限性,在这里再扯多一句,很多人不知道什么时候用

json什么时候用数组,如果频繁添加删除的尽量用json,因为这是数组的短处,如果频繁取数据的用数组。时间有限,下次会专门来扯一扯这个话题。

测试

共享一下测试concat()和Array.prototype.push.apply(a,b) 的代码,有需要的拿走玩玩

function testClass(){
    var testArray1=[];
    var testArray2=[];
    this.resetArray=function(){
        for(var i=0; i<10000000;i++){
            testArray1.push(i);
            testArray2.push(i+10000000);
        }
    }
    this.applyTest=function(){
        var startTime=0,
            endTime=0;
        console.log('开始合并的时间是:'+ (startTime=new Date().getTime()));
        var aa=Array.prototype.push.apply(testArray1,testArray2);
        console.log(aa);
        console.log('合并完成的时间是:'+ (endTime=new Date().getTime()));
        console.log('合并数组所用的时间是:'+(endTime-startTime));
    }
    this.concatTest=function(){
         var startTime=0,
            endTime=0;
        console.log('开始合并的时间是:'+ (startTime=new Date().getTime()));
        var aa= testArray1.concat(testArray2);
        console.log(aa.length);
        console.log('合并完成的时间是:'+ (endTime=new Date().getTime()));
        console.log('合并数组所用的时间是:'+(endTime-startTime));
    }
}

var apply=new testClass();
apply.resetArray();
apply.applyTest();

var concat=new testClass();
concat.resetArray();
concat.concatTest();

转载自: http://blog.csdn.net/maoguiyou/article/details/51433551

赛马理论与人生定位

标签: 观点 赛马

  1. 在微信读书里搜到了这本书的中文版,有个很low的名字《人生定位:特劳特教你营销自己》
  2. 是做赛马还是骑师?是单枪匹马舍命狂奔还是选好良驹,练好马术?观点独到,值得深思
  3. 相信你已经能很好驾驭前两匹马了,持续学习、虚心求教、重视工作、业余充电,最后这匹马什么时候觉得驯服了,我觉得你就具备了创业的条件
  4. 看完了这篇文章,让我联想起了大学学过的两篇文章: 爱因斯坦《我的世界观》和罗素《如何避免愚蠢的见识》,曾给了我一个很重要的**提升:“宇宙无限,而人的认知有限,永远不要给自己思维设限”,共勉!
  5. 最后,送心灵鸡汤一碗: 智慧是知识基础上形成的你个人的洞见和判断力。智慧来源于你读过的书,和你看到的世界。

读《很少人知道的“赛马理论”,可能会改变你的一生》有感

有选择就会有后悔

"风口在哪里,投资人就在哪里",这是当今互联网的真实写照。最近的风口是vr和直播,我也有幸拿到了一个还算满意的offer, 不仅是薪水和股票,技术趋势,还是创业团队的高大上(斯坦福,研究生,博士,诺基亚,微软等),对于我这样一个草根背景的程序员来说,都会觉得是一次非常好的机会,也算是抱上大腿了,平台更大了做事的机会也就更多了,甚至畅想着这家公司能快速成长,上市,股票在几年内翻个十倍二十倍上百倍,终于可以在小孩读书前,在北京买房了的种种肯能性。

但是,当我把辞职申请提交上去之后,第二天一大早,技术总监找我约谈,并立马把涨薪决定的邮件发给了财务,总得算下来待遇跟那边稍差了点,但是面对这种意料之外,我却选择了留下来。为什么会留下来?也许是考虑到我并不是因为混不下去了才离开这家公司的,换一个新的环境需要花很长时间做很多事情,才会得到别人的肯定。而且人都是有情感的,如果不是迫于生活的压力,谁情愿离开一个好不容易建立起来的被信任、被认可的工作环境?

夜晚回到住的地方,一通电话过去,果断拒绝了那边的offer。一次选择也许就决定了后半生。还是举一个我身边的例子,我的技术主管在金山词霸的时候,黎万强是他的直接上司,当年黎万强带着金山的原班人马去创办小米的时候,他也面临同样的选择,是去还是留。最终很多人都跟着去小米了,他也离开金山,来到了现在的这家公司。然而小米在商业上的巨大成功是我们公司所无法企及的,原先的同事都在同一起跑线上,因为一次选择差距从此拉开。从现在看来,技术主管没有后悔当时的选择肯定是假的。

拒绝offer之后的夜晚无眠,我知道不管做出何种选择,只要选择了就肯定会后悔!

我的博客

昨天晚上看了@riskersgithub issues写的blog,文章质量很高,实践性很强。正好一直纠结博客托管的问题,感觉把窝建在这里是我的内心所属。
心动不如行动!一早来到办公室,就新建了一个repo,在issues发表了这篇短短的说明,前后花了不到十分钟就搭建成功了,纪念一下。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.