我一直认为,要学会像程序员一样思考,就不仅仅是认真严肃的看代码这么简单,而是要详细的理解计算机的发展以及计算机的历史,甚至于更深入的去了解数学和科学的一些常见的本质。今天我希望使用最浅显易懂的语言来为大家解读计算机领域内你常常忽略的一些概念。
- 本文面向读者为 了解常用计算机知识或了解常用数学知识的人群。若你是文科生,又恰恰不是很了解数学,也许你会感到迷茫。
- 本文使用用例为JavaScript语言
变量(Variables)
变量从来都不是计算机领域的专有名词,在我们学习数学的时候,就已经存在了变量的概念。
variables在英语里面解析为可变因素,变化的等等。变量在数学领域常用拉丁字母来表示,因为变量的概念本身就与常数相反(常数是定值,只能表示一个真实值),所以变量使用字母来表示一个非常量数据。数学领域还细化变量为自变量和因变量,简单的说自变量就是你人为带入的值,是主动自行变化的变量,而因变量是因为自变量变化而变化的常量。 例如下面的公式,E就是因变量,而m就是自变量。
如常见的数学公式:
JavaScript
变量是你存储数据的容器。要声明一个变量你需要使用关键字 var(是不是与Variables有着一丝丝联系?:D),然后输入任何你想要的名称作为其引用即可,此时也就是显式声明了一个变量demo。
表达式(Expression)
expression在英语中意思为表现/表达/表情/眼神/态度/语气等等,expression in one's eyes意思为眼神。表达式翻译在我感觉是有一定的偏差的,大致的含义是数据的一种表现方式(形式),是对数据的一种加工。
表达式也不是计算机领域的专有名词,在数学领域也在就定义了表达式的概念
math
:表达式是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。约束变量在表达式中已被指定数值,而自由变量则可以在表达式之外另行指定数值。
JavaScript
:表达式是由运算符和操作数来组成,+ * ()就是运算符,而a b 4就是操作数
- 操作数(operands)
什么是主要表达式(primary-expression)?
在C语言参考资料中我找到了一些资料,共有一下几种语法
杂表达式
表达式语法 | 表达式语法解释 | 表达式语法示例 |
---|---|---|
identifier | 标识符 | 在静态语言中,int/double/float |
constant | 常数,常量 | 常量区别于变量,只能用实际的值来代替,如:13,true ,静态语言请参照常量可赋值的具体语法规则 |
string-literal | 字符串 | ‘china’,JavaScript动态类型,故与上面相同 |
( expression ) | 括号中的表达式 | (1+2)*4 若没有()则会改变整个表达式的结构 |
expression: | ||
assignment-expression | 赋值表达式 | a = b b的值赋给a |
expression , assignment-expression | 赋值表达式 |
C 中的操作数包括常量、标识符、字符串、函数调用、下标表达式、成员选择表达式以及通过将操作数与运算符组合或将操作数括在括号中而形成的复杂表达式。 主表达式中提供了这些操作数的语法。
- 运算符
其实表达式本身并没有任何意义,只有在表达式的变量有了值的时候,表达式本身才算是有意义。
在计算机领域,表达式最常见的莫过于正则表达式(regular expression),这里不在阐述该知识点。Javascript中常见的表达式也许就是你所常见的
var demo = 1+2;
运算符(operator)
运算符的英文单词为operator,意思是接线员/操作人员/经营者/运算符等含义。运算符在计算机领域主要是指定要在表达式中执行哪些操作(数学、索引、函数调用等等)的符号,所以看到运算符是依赖于表达式而存在。
=赋值运算符