JavaScript 那些写出来会被同事揍的骚操作

May 27, 2020 · Javascript
1. 位运算JavaScript 中最臭名昭著的 Bug 就是 0.1 + 0.2 !== 0.3,因为精度的问题,导致所有的浮点运算都是不安全的,具体原因可详见《0.1 + 0.2不等于0.3?为什么JavaScript有这种“骚”操作?》。因此,之前有大牛提出,不要在 JS 中使用位运算:Javascript 完全套用了 Java 的位运算符,包括按位与&、按位或|、按位异或^、按位非~、左移<<、带符号的右移>>和用0补足的右移>>>。 这套运算符针对的是整数,所以对 JavaScript 完全无用,因为 JavaScript 内部,所有数字都保存为双精度浮点数。如果使用它们的话,JavaScript 不得不将运算数先转为整数,然后再进行运算,这样就降低了速度。而且"按位与运算符"&同"逻辑与运算符"&&,很容易混淆。但是在我看来,如果对 JS 的运用达到炉火纯青的地步,能避开各种“Feature”的话,偶尔用一下位运算符也无所谓,还能提升运算性能,毕竟直接操作的是计

SSH 提示WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

May 20, 2020 · Linux
1. 提示如下[root@ansible root]# ssh 172.21.21.252@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!Someone could be eavesdropping on you right now (man-in-the-middle attack)!It is also possible that the RSA host key has just been changed.The fingerprint for the RSA key sent by the remote host isc7:10:34:25:4d:7a:05:59:4a:3

Python FAQ

May 13, 2020 · Python
1. a is b 与 a == b有什么区别is 比较id(),==比较值>>> a = -5>>> b = -5>>> a is bTrue>>> a = -6>>> b = -6>>> a is bFalsePython为了优化效率,内置了小整数对象池和简单字符串对象池。小整数对象池包括[-5, 256]。这之间的小整数数值相同时在小整数对象池中属于同一对象即是 a is b 返回True。简单字符串也是如此,对于其他对象则不适用2. range() 与 xrange() 返回值有什么区别xrange() 返回生成器,range() 返回列表。Python3中已删除xrange(),range()返回生成器3. Python中的多线程在默认的CPython解释器中,多线程只能交替执行,并不能做到真正的并发执行。解释器执行代码时,有一个GIL(Global Interpreter Lock)锁,任何线程在执行前,必须先获得GIL锁,然后,发生IO或执行一定数量字节码时,解释

Shell 获取本机IP地址

May 12, 2020 · Linux
CentOS 6.5相对于CentOS 7中的ifconfig命令多了addr:字符1. 获取以"172."或"10."开头的IPifconfig|grep inet|grep -v inet6|awk '{print $2}'|tr -d "addr:"|grep -E "^172\.|^10\."2. 获取除回环地址之外的所有IPifconfig|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"

My PS1

May 9, 2020 · Linux
export PS1='\e[32;1m[\u@\h \w]\$\e[0m '