所有博客均发表在issues
webeautiful / blog Goto Github PK
View Code? Open in Web Editor NEWgithub issues写博客
github issues写博客
所有博客均发表在issues
用文字捕捉到梦境,醒来时记录下来的场景:
不明原因来到北京郊区少数民族村旅游,看到枯竭的池塘,池塘边有人表演武术,我从一个女的手上买了类似票类的东西,又感觉像有艺术感的弯曲筷子,然后在离开这个村的路上碰到了三妈,不知怎么的就坐在了同学的车,目的是回家和媳妇碰面赶晚上十点的火车(应该是西站),回家的路上看到飞驰而过的跑车,方向盘朝下,驾驶位是倒着的,开车的人是个女年青,我看见了奔驰的标识,同学说是K5跑车,然后闹钟响,人醒了
其他
'use strict';
正如在JavaScript Hiring Guide中所解释的,严格模式
(即在你的JavaScript源文件开始的地方添加上'use strict';
)是一种在你的JavaScript代码运行时,自动执行更严格的解析和错误处理的方法,同时这也会使代码更加安全。
其实,不使用严格模式本身并不算一个“错误”,但是它的使用越来越受到鼓励,省略严格模式越来越被认为是一种糟糕的形式。
这儿列出了严格模式的几个主要的好处:
那些容易被忽略或者是没有自动生成错误或者抛出异常的代码错误,能够提醒你更早的去发现你代码中的问题并且引导你更快的去发现错误来源。
在非严格模式中,给一个未申明的变量赋值会自动创建一个同名的全局变量。这也是JavaScript中最常见的一类错误。而如果你尝试在严格模式中这样操作将会抛出一个错误。
实践证明,严格模式能够发现未申明的变量,并抛出错误
在非严格模式下,使用this来引用一个null或者undefined类型的值,this会自动强制指向全局对象。这会导致很多挠破头皮也找不出来的bug。在严格模式中,使用this引用一个null或者undefined类型的值会抛出一个错误。
当检测到一个对象里有重复命名的属性名(例如:var object = {foo:"bar",foo:"baz"};)或者是一个函数有重复命名的参数(例如:function foo(val1,val2,val1){})时,严格模式将会抛出一个错误。我们应该捕获那些几乎确定是代码中的bug,否则你将会浪费掉很多的时间去追踪一些不必要的问题。
最显著的是在严格模式下,一个eval()语句内部申明的变量和函数不会在eval()所处的作用域中进行创建,他们只用于eval()内部(在非严格模式下会创建,这也是很多问题的常见原因)。
当企图去删除一个未配置的属性时,非严格代码只会默默地失败,而严格模式在这样的情况下会抛出一个错误。
自上次畅聊后,我有2点个人的思考:
标签:js
数据合并
性能分析
js数组合并有两个常用方法,用法如下:
var a=[1,2,3],b=[4,5,6];
1.1那个数组在前面合并后那个数组的元素就在前面
1.2 可以利用这个来复制一份数组,a.concat(a);
1.3 数组长度无限制,返回值是合并后的数组
1.4 千万级别的数组合并大约30毫秒
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
观点
赛马
"风口在哪里,投资人就在哪里",这是当今互联网的真实写照。最近的风口是vr和直播,我也有幸拿到了一个还算满意的offer, 不仅是薪水和股票,技术趋势,还是创业团队的高大上(斯坦福,研究生,博士,诺基亚,微软等),对于我这样一个草根背景的程序员来说,都会觉得是一次非常好的机会,也算是抱上大腿了,平台更大了做事的机会也就更多了,甚至畅想着这家公司能快速成长,上市,股票在几年内翻个十倍二十倍上百倍,终于可以在小孩读书前,在北京买房了的种种肯能性。
但是,当我把辞职申请提交上去之后,第二天一大早,技术总监找我约谈,并立马把涨薪决定的邮件发给了财务,总得算下来待遇跟那边稍差了点,但是面对这种意料之外,我却选择了留下来。为什么会留下来?也许是考虑到我并不是因为混不下去了才离开这家公司的,换一个新的环境需要花很长时间做很多事情,才会得到别人的肯定。而且人都是有情感的,如果不是迫于生活的压力,谁情愿离开一个好不容易建立起来的被信任、被认可的工作环境?
夜晚回到住的地方,一通电话过去,果断拒绝了那边的offer。一次选择也许就决定了后半生。还是举一个我身边的例子,我的技术主管在金山词霸的时候,黎万强是他的直接上司,当年黎万强带着金山的原班人马去创办小米的时候,他也面临同样的选择,是去还是留。最终很多人都跟着去小米了,他也离开金山,来到了现在的这家公司。然而小米在商业上的巨大成功是我们公司所无法企及的,原先的同事都在同一起跑线上,因为一次选择差距从此拉开。从现在看来,技术主管没有后悔当时的选择肯定是假的。
拒绝offer之后的夜晚无眠,我知道不管做出何种选择,只要选择了就肯定会后悔!
昨天晚上看了@riskers用github issues
写的blog,文章质量很高,实践性很强。正好一直纠结博客托管的问题,感觉把窝建在这里是我的内心所属。
心动不如行动!一早来到办公室,就新建了一个repo,在issues发表了这篇短短的说明,前后花了不到十分钟就搭建成功了,纪念一下。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.