Sass和Less都算是一种编程语言(后面会详谈此处牵扯出来的编程语言),都是CSS预处理器,都具备相同的功能,能够帮助咱们快速编译CSS代码,html
细一点来讲: Sass是一种动态样式语言,Sass语法的缩排语法,比CSS比多出不少功能,如变量,嵌套,运算,继承,颜色处理,函数等,易于阅读。
Sass是基于ruby运行的(就比如HTML文件是基于浏览器运行的),Sass是在服务器端处理的,而Less是基于JavaScript,因此,Less是在客户端处理的。这就是Sass和Less的实现区别。
因此不少开发者不选择Less,可能就是由于JavaScript引擎须要额外的时间来处理代码。(我乱猜的)编程
但Less和Sass在语法上有些共性,好比下面这些:api
● 混入(Mixins)——class中的class;● 参数混入——能够传递参数的class,就像函数同样;浏览器
● 嵌套规则——Class中嵌套class,从而减小重复的代码;ruby
● 运算——CSS中加入数学运算;服务器
● 颜色功能——能够编辑颜色;数据结构
● 名字空间(namespace)——分组样式,从而能够被调用;编程语言
● 做用域——局部修改样式;函数
● JavaScript 赋值——在CSS中使用JavaScript表达式赋值spa
咱们所说的CSS和HTML算不算编程语言呢?答案是No,即HTML和CSS都不是一种编程语言(HTML我在讲Markdown的那篇文章里也提到过),HTML(超文本标记语言)是结构化文档,就算是数据结构的一种(变体)吧,CSS(层叠样式表)就是渲染引擎的怎么运做的配置文件,只能算是一种数据。
其实断定它们是否是编程语言的界限,是看它们具有不具有图灵完备(下面会细说图灵完备)。解释图灵完备以前,咱们再来解释一个小问题:咱们常常提到的HTML5(H5)又是什么呢?
1.简单的说: HTML5是html+CSS3+js api的一种规范
2.详细的说:在狭义上HTML5也是不具有图灵完备,因此不算编程语言,它包含的是HTML等基础标记。
而在广义上,HTML5感受更像一个平台,而不是一种语言。有人也把 CSS3 划归到HTML5里面,更具划时代意义的是HTML5 提供了不少 js 的api,经过 js 调用这些api能够作到不少完备编程语言的事情。
那咱们把HTML5怎么称呼合适呢?其实HTML5叫作一种代码规范标准更合适。HTML做为一门标记语言,更重要的做用是做为信息的呈现载体,注重信息的呈现形式。而HTML5中出现了不少的新特性,但整体仍是更偏重于信息的呈现方式,而不是对信息自己的处理。
好了,咱们如今回过来讲图灵完备(Turing completeness),
图灵完备性是针对一套数据操做规则而言的概念。数据操做规则能够是一门编程语言,也能够是计算机里具体实现了的指令集。当这套操做规则能够实现图灵机模型里的所有功能时,就称它具备图灵完备性。
因此计算机编程语言都是图灵完备的。说的再直白一点,就是一门编程语言里是有逻辑判断(例如if,elseif判断),循环(例如for循环)和函数,要有代码的复用性。 CSS和HTML都不具有这些吧,
这就是为何HTML和CSS不是编程语言,而Sass和Less算一门编程语言。固然,对于部分开发人员来讲,究竟谁是否是编程语言可能可有可无,只要会运用它们就行,嘿嘿~。(暂完)
若有不足和不对的地方,但愿各位看客大牛指点迷津,感谢。