首先
语言不分好坏,好坏在于写代码的人!
尴尬脸
本来想比较下两个,结果我竟然不知道写什么。es6出来后,js的class extends...也都有了,当初的原型啊继承啊好像都变得忽远忽近了!由于涉及php,打开了win10老人机电脑看曾经写得一些代码,满满的回忆杀啊曾经学习php的基础可以说是走心了,随便截了一点...


正题
自己现在能想到的主要就是以下几方面:
- 同步 && 异步
一个同步阻塞一个异步非阻塞!想当初写php的时候哪里需要考虑异步的事情,现在写node.js就要处处小心了,独特的优点带来的不便。 所以js就拥有独特的promise,async,generator - 对象
js的对象真的一个很拗脑(对比Java,php)的东西。一系列 内建对象 (array,function也是特殊的object),还有 构造器函数(new Object()) ,this 的坑, 属性,...
php的对象话,我所理解的就是类的一个 实例..当然js也有类的实例对象。 - 数组
在上面写js对象的时候,才想到{key:value} 和 php的数组[key=>value]... js数组和PHP的索引数组真的很像 js的对象和php的关联数组也是真的很像(像不等于一样,单纯对应属性值时真的像) - 函数
php直接 声明 然后直接 调用 就好了。js对不起,调用还有回调?即时调用?函数写法还分匿名?箭头? 对了,js函数内部的函数还有 闭包(拗脑的东西) 呢!!! - 变量
上面说到闭包,我就想到了 js 作用域, AO 链, 变量提升。而php相对单纯多了,局部$test=1, 全局$GLOBALS['test']=1声明就好了,哪里有什么一不注意就变量提升了...当然es6中除了有var,现在有 let, const 还是很方便的,对了还有 严格模式 ! -
oop
js在 没有es6 (class,extends,constructor)之前的我简直不敢相信自己会(逃).- 封装: php的属性方法有static,public,protected等关键字 来修饰,而js的话都相当于是public,不过可以用一些拗脑的方式来模拟,参考阮一峰es6.
- 继承: 现在两个都可以extends方式继承,以前的话 js各种继承方式 脑细胞烧死一群, 原型链 各种烧脑
- 多态: 其实自己感觉js和php都谈不上真正的多态,毕竟都是 弱类型语言,只要开心就好写法随意。多态的话对比java
- other:
this, 在php类里面会绑定,而Js的话你懂就好...
魔术方法, js中的constructor大概就类似与php中的__construct。当然php中还有很多其它(__set, __call...)
接口, 本应该放在外层的,但是由于目前还没有发现js有相关概念所以放在这里一代而过啦。php的话接口(interface,implements)和类(class,extends)有相似也有区别。
...
- 垃圾回收机制
坑位先留着,以后再来填!我现在的认知是很模糊不确定的。 - 其他
两个的函数名啊,命名规范啊,格式啊......
总结
一下子一气呵成能想到的主要就这么多了,当然还有很多其它的异同。上面正题里自己的感情基调好像很鄙视js似的,其实不然,有爱就有恨!!!毕竟当初在写了一段时间的php后,我觉得js实在是太有魅力了,才有了转语言的念头。不过讲真js的概念真的比PHP多,不过好像现在自己在工作中用到的...[逃]
最后:js很美很有魅力也很气人
工作小插曲
遇到一个我不知道怎么形容的bug,隐藏得很深也很坑。花了很久自己终于还是找到了导致这个bug的因素,也成功的解决了!但是,为什么会导致这个因素,我(们)还是很懵逼的。也算是比较糟心且有趣的一件事情了。
生活小插曲
-
继两天前久未联系同学借钱后,这两天微信一句话也没说过,上午又打电话找我借钱。拒绝了!!!可以说是比较糟心了,所以人心啊,是真的不知道怎么形容~~
-
下午一曾算基友的人吧,打电话找我借钱,当然是没借因为我也很穷!怎么说呢,很有一番不是滋味的感觉~~上次有人找我借钱我都快忘记是什么时候了,结果这两个又凑在了同一天...
明日任务
- 上面工作小插曲的bug尽量找到最根本导致的原因(不确定能否找到)
- 楼上若顺利,更新一下脚手架的后端部分