程序员

好程序员web前端教程分享初学者搞懂i++和++i

我与影子孤独终老i 提交于 2019-12-07 12:54:52
好程序员web前端教程分享初学者搞懂i++和++i 刚学习前端的同学,在学到++运算符的时候,都是一脸的懵 var k = 10; console.log(k++ + ++k + k++) //34 var i = 10; console.log(++i + i++ + ++i) //35 console.log(i++ + ++i + i++) //43 ***way???为什么?为什么?为什么?*** 下面我们一步一步的来看: >1、 var i = 10; > >2 、i++; //等价于i=i+1 3 、console.log(i); //11 ###++可以与输出语句写在一起,++写在变量前和写在变量后不是一个意思 >i++ : 先用a的原值,然后i加1; >++i :先给a加1,然后用i的新值 ``` 1、 var i = 10; 2 、console.log(i++); //10 ,先引用原值,然后加1 等价于: 1 、 var i= 10; 2、 console.log(i); //先输出i 3、 i++; //然后f加i ``` 区别于: ``` 1、 var i = 10; 2、 console.log(++i); //11 , 这次是先加1,然后输出 ``` ++有点意思的玩法: ``` 1 var i = 8; 2 console.log(4 + i++);

好程序员web前端教程分享初学者搞懂i++和++i

可紊 提交于 2019-12-07 12:28:27
好程序员web前端教程分享初学者搞懂i++和++i 刚学习前端的同学,在学到++运算符的时候,都是一脸的懵 var k = 10; console.log(k++ + ++k + k++) //34 var i = 10; console.log(++i + i++ + ++i) //35 console.log(i++ + ++i + i++) //43 ***way???为什么?为什么?为什么?*** 下面我们一步一步的来看: >1、 var i = 10; > >2 、i++; //等价于i=i+1 3 、console.log(i); //11 ###++可以与输出语句写在一起,++写在变量前和写在变量后不是一个意思 >i++ : 先用a的原值,然后i加1; >++i :先给a加1,然后用i的新值 ``` 1、 var i = 10; 2 、console.log(i++); //10 ,先引用原值,然后加1 等价于: 1 、 var i= 10; 2、 console.log(i); //先输出i 3、 i++; //然后f加i ``` 区别于: ``` 1、 var i = 10; 2、 console.log(++i); //11 , 这次是先加1,然后输出 ``` ++有点意思的玩法: ``` 1 var i = 8; 2 console.log(4 + i++);

再谈编程语言之争

╄→гoц情女王★ 提交于 2019-12-07 06:49:43
写文章和写程序,都是写,写文章的人叫文人,写程序的叫程序员。古语说文人相轻,很多程序员也有这毛病,程序员互相看不起,行话做叫“鄙视链“。体现在编程语言上,就是用编程语言A的,会鄙视用编程语言B的,而用编程语言B的,又会鄙视用编程语言C的。这种争论在10年左右很是盛行,这几年少得多了。 引起这个变化的原因主要是两个,一是互联网在言论方面收紧影响了大家的积极性。二是年龄慢慢变大了。最近又看了几篇王垠的博客,回想起这个语言之争。又有一些新想法。 以前读书的时候,了解到一些常用编程语言的名字,比如汇编,C,C++,ASP,VB,JAVA,并且编程语言是从低级到高级,面向过程到面向对象这样发展的。我对这些编程语言是怀着崇拜的心态来看待的。因为了解怎么使用这些语言,感觉自己掌握了“人机交互的接口”,是因为像自己这样的程序员,才能使得普通用户能方便的使用计算机。后来从互联网了解到,大家在用的编程语言竟然如此之多。TIOBE每年都会发布一个编程语言热度排行板。上面会用表格的方式例出前50名的热度。并且还有后50名的排行。也就是说,这100种编程语言都有人用。 而且看网上说,国外的大学,很多教授会自己发明一个语言用于教学。以前不甚了解,现在通过王垠的一些经历,原来这些教授是PL领域的。 软件行业流行一句经曲名言:不要重复造轮子。而且经常被有些大牛拿来教训菜鸟,这些创造编程语言的人,也软件界的大牛

简单谈谈编程语言(一)

廉价感情. 提交于 2019-12-07 06:49:05
本文基于我个人的一些学习和开发经验,以机器语言、汇编语言、C/C++、Java、C#为例,谈谈我的看法,如有不对的地方,欢迎指出。感谢我的老师和师兄师姐在我提出这个问题后,给出了他们的看法。本文尽可能用更容易理解的角度去编写,帮助理解编程语言。 对于编程语言的初学者,以及学过一些编程语言的科班学生、培训机构的学生等等而言,编程语言似乎很难理解。为什么会有这么多编程语言?为什么需要这么多编程语言?为什么有了这么多编程语言了还不停出新的编程语言?编程语言之间的区别是什么?等等一系列的问题就出来了。如果不能很好地去理解,望着层出不穷的编程语言,以及语言流行上不断变化的最火的编程语言,最火的框架,然后我们就开始害怕,开始犹豫,开始抱怨,开始焦虑,开始跟不上时代的步伐。 这样的感觉我也有过,但是我并没有后面这么复杂的情绪,因为我还只是个大三的学生。但是,我知道如果我没有去解决这个问题,我以后的情绪可能会更复杂。百度、谷歌很难找到合适的答案,说的过于抽象或者太深,所以,我还是决定说说自己的理解,简单谈谈。 最开始出现的,就是传说中的机器语言,就是那一大串0和1做成的符号。我们都知道,计算机比较笨,它所能理解的状态只有两种,开(1),关(0),你也可以看成开关变量。为什么只有它只能理解两种状态?不深入讲,从浅层来说,有一个电路,最简单的控制方式是什么?毫无疑问,给它一个开关,开(1

编程语言那些事儿

余生长醉 提交于 2019-12-07 06:43:36
前言:本文根据网上各方材料整理总结而成。本人过去几年使用过的编程语言包括:C、C++、C#、Java、Pascal、Python、JavaScript、PHP、Perl等,先整理一下各编程语言的渊源,成此文。今后有空再总结一下各语言在语法和应用层面的异同点。 编程语言五大家族 早期的编程语言分为:FORTRAN、 COBOL、 LISP、 BASIC、 和ALGOL 家族。这些语言为不同的社会群体而设计。 FORTRAN:为科学家和工程师设计的,他们在计算机上编程的目的是是为了解决问题。 COBOL: 为商业设计的,最好的体现在于让商人们可以利用电脑时代。 LISP: 为计算机科学研究设计的,最突出的体现在计算机基本原理研究.。 BASIC: 为初学者设计的。 ALGOL: 语言是有计算机程序员修改,演变成其他流行的语言,如C,Pascal和Java的一个庞大的家族。 上面提到的某些语言已经不像当初那么流行了。 首先是COBOL, 很不幸,它以面向商业人员的很好的可读性就是它的失败点。商业人员发现,他们可以雇佣程序员去管理他们的系统。程序员自然会偏向于为他们设计的语言,而不是他们的老板。所以随着时间推移,越来越多的商业功能都使用例如VB, C, C++ 和Java实现了。现在,只有很少一部分软件仍通过COBOL语言编写。 BASIC却有不同的命运。他是为入门人员设计的

黑马程序员-泛型

主宰稳场 提交于 2019-12-07 05:07:49
泛型:安全机制。编译过后会被擦除。 思考题不会报错。因为参数化类型可以和原始类型是兼容的。 好处: 1,将运行时期出现的ClassCastException,转移到了编译时期。方便与程序员解决问题。 2,避免强制转换。 泛型的使用: 格式:通过<>来定义要操作的引用数据类型。读作typeof 使用java提供的对象时,什么时候使用泛型呢? 通常集合常见,见到<>就需要定义泛型。 泛型类:当类中操作的引用数据类型不确定的时候。早期用Object扩展,现在用泛型。 class Utils<Q>{ private Q q; public void setObject(Q q){ this.q=q; } public Q getObject(){ return q; } } 泛型方法:泛型类定义泛型,在整个类中有效。如果方法被使用,那么泛型类的对象明确要操作的具体类型后,所有的操作就已经固定了。为了让不同方法可以操作不同类型,而且类型还不确定。那么可以将泛型定义在方法上。(定义在返回值前) class Demo{ public <T>void show(T t){ } public <Q>void print(Q q){ } } 泛型在方法上定义只在方法中有效。不同方法的泛型互不干扰。 泛型类和泛型方法不冲突。 class Demo<T>{ public void show(T t){ }

程序员那些事儿

强颜欢笑 提交于 2019-12-07 00:10:39
近期有一位同事转岗到软件开发,由我来教他C#。光阴如梭,不知不觉就干了9年的开发了。没练就一手硬技术,也没收获什么丰厚的物质。并非安逸于自己的小环境,这里的麻烦事情也是每天发生,然而就是想在自己的路上再坚持坚持。想想做程序员这些年的事情,还是觉得非常回味。 0,当初入门编程时的心情现在想起还是会激动。那时做一个计算器的程序(C#),想获取一个Button是否按过,研究了好久好久,把它每一个Property都试过了,把它每一个Event里的参数也试过了,就是没有结果。后来请教一学霸,他刚说了一句话:定义一个变量……我:噢~(内心一万头草泥马)。神清气朗!顿时感觉整个世界都很美好了!这就是编程啊! 1,坚持着一些编程的习惯,特别锻炼人的性格。比如工作第一年看到一本书里推荐写值类型关键字的时候要用原始模式,不推荐用简写模式,然后这么多年我从来没看见别人用过原始关键字,而我却一直这么写着:Int32、Int16、Single、Double、Boolean……再如代码边写边检查、不要copy代码、给代码起个好名字……曾经写个温湿器相关的功能,查到相关英文单词Hygrothermograph,于是我不厌其烦的在程序里一遍一遍地写那个只有俩词儿却特别臃肿的名字HygrothermographManagerment。 2,编程里的一些方法论被应用到生活中时,做起事情来也条理化了。模块化

字符串与其他基本类型的转换——从C到C++11

橙三吉。 提交于 2019-12-06 22:35:19
转自 IBM 编译器中国开发团队的《C++11中的string - atoi/itoa》 在C++11中,由于右值引用的引入,常为人所诟病std::string的性能问题得到了很大的改善。另外一方面,我们也可以看到新语言为std::string类增加了很多新的api。比较引人注意的就是std::string的成员函数stoi系列,以及std::to_string全局函数。这两种API虽然很不起眼,却为C++11的格式化输出(formatted I/O)增加了一种实用的手段。我们可以依序会议一下C,C++98,C++11中我们是如何处理atoi/itoa的问题的: 在C时代,通常我们遇到atoi(字符串到数值转换)的问题的时候我们会使用<stdlib.h>中的atoi函数: int num = atoi(cstr); 这里的cstr通常为char 或者const char 类型的字符串。函数返回的结果则是该字符串所表示的一个十进制的integer。函数的整个效果则等同于<stdlib.h>中的另外一个函数strtol: int num = strtol(cstr, NULL, 10); 相比于atoi,strtol多了最后一个参数"radix"表明函数采用的是几进制(这个进制数可以从2到34,这个数值范围的原因显而易见)。除去strtol会在出错时设置全局的errno外

好程序员web前端教程分享初学者搞懂i++和++i

99封情书 提交于 2019-12-06 21:05:30
好程序员web前端教程分享初学者搞懂i++和++i 刚学习前端的同学,在学到++运算符的时候,都是一脸的懵 var k = 10; console.log(k++ + ++k + k++) //34 var i = 10; console.log(++i + i++ + ++i) //35 console.log(i++ + ++i + i++) //43 way???为什么?为什么?为什么? 下面我们一步一步的来看: 1、 var i = 10; 2 、i++; //等价于i=i+1 3 、console.log(i); //11 ###++可以与输出语句写在一起,++写在变量前和写在变量后不是一个意思 i++ : 先用a的原值,然后i加1; ++i :先给a加1,然后用i的新值 1、 var i = 10; 2 、console.log(i++); //10 ,先引用原值,然后加1 等价于: 1 、 var i= 10; 2、 console.log(i); //先输出i 3、 i++; //然后f加i 区别于: 1、 var i = 10; 2、 console.log(++i); //11 , 这次是先加1,然后输出 ++有点意思的玩法: 1 var i = 8; 2 console.log(4 + i++); //12 , 先使用原来的a的值,就是4+8,输出12

好程序员web前端教程分享初学者搞懂i++和++i

杀马特。学长 韩版系。学妹 提交于 2019-12-06 21:03:31
好程序员web前端教程分享初学者搞懂i++和++i 刚学习前端的同学,在学到++运算符的时候,都是一脸的懵 var k = 10; console.log(k++ + ++k + k++) //34 var i = 10; console.log(++i + i++ + ++i) //35 console.log(i++ + ++i + i++) //43 ***way???为什么?为什么?为什么?*** 下面我们一步一步的来看: >1、 var i = 10; > >2 、i++; //等价于i=i+1 3 、console.log(i); //11 ###++可以与输出语句写在一起,++写在变量前和写在变量后不是一个意思 >i++ : 先用a的原值,然后i加1; >++i :先给a加1,然后用i的新值 ``` 1、 var i = 10; 2 、console.log(i++); //10 ,先引用原值,然后加1 等价于: 1 、 var i= 10; 2、 console.log(i); //先输出i 3、 i++; //然后f加i ``` 区别于: ``` 1、 var i = 10; 2、 console.log(++i); //11 , 这次是先加1,然后输出 ``` ++有点意思的玩法: ``` 1 var i = 8; 2 console.log(4 + i++);