
获得徽章 9
- #每天一个知识点#
为什么我认为 PHP 是历史阶段中最好的服务端编程语言?
——————————
在万维网刚诞生的时候,开发动态网页的技术实质上是为每个页面开发一个可执行的程序。当时主流编写动态网页程序的语言有 C 、 Perl 等,然后在这个程序里面执行数据库访问,动态 HTML 字符串拼接,最后再响应给客户端,让浏览器渲染,可类比前端开发早期用 ajax + js 拼接 html 字符串一般。这种重复且低质的代码枯燥乏味,此时 PHP 的作者基于懒惰的驱动,决定转变思路。
他的想法概括就是相比普通 CGI 程序将动态内容封闭在程序内部,那么为什么不转变视角?以 HTML 为中心,用 CGI 的指令(或宏)侵入到 HTML 文件中,使其成为模板,并使用模板来粘合 Web 服务器和 CGI 程序(后端程序),这一技术路线的转变,使得开发人员只需要用 CGI 程序的指令来编写模板即可,无用去了解 CGI 程序内部的具体实现。后来随着发展,CGI 程序进化为了解释器或引擎,CGI 指令则进化为了服务端脚本语言。展开赞过评论2 - 如果你对万维网(WWW)的脉络发展比较感兴趣,可以看看这个万维网发展的时间线。
—— 1989 年一个信息管理的提案是一切开始的起点赞过评论2 - 只用来验证有效数字(有理数)、排除 NaN,Infinity,null,undefine 等特殊值,随手写的,不知道有没有 bug,如果大家有兴趣,请帮忙验证下
我为什么不使用 lodash 的 isNumber 工具方法?
答:因为它会认为 Infinity 是一个数值。
```js
function isNumber(num) {
if (num === '') return false;
if (num === null) return false;
if (isNaN(num)) return false;
if (num * 1 - num * 1 !== 0) return false;
return true;
}
```
Eg:
```js
isNumber('') //false
isNumber(null) //false
isNumber(Infinity) //false
isNumber(NaN)//false
isNumber('a')//false
isNumber(0)//true
isNumber(-1)//true
```展开9点赞