前端编程语言有哪几种(目前最主流的6种编程语言)
有些人会说语言学到最后不都差不多吗?其实可以这样讲,也可以不这样讲。虽然每种语言的表达能力大部分是重合的,只是语法表现形式不一样,但是由于历史发展的原因,每种语言形成了自己的支撑环境,所以都有其主要的适用范围。
c、c++、python和java四种是通用编程语言,javascript和php算是web环境的专用编程语言。
c(令人崇拜的语言)
由于其底层操作特性和历史的积累,在嵌入式领域是当之无愧的王者。
c++(神秘莫测的语言)
是一种支持最广泛编程范式的复杂语言,在高级语言当中,处理运行速度是最快的,大部分的游戏软件,系统都是由c++来编写的。
python(高端大气上档次的语言)
作为一种灵活的轻便的通用型脚本语言,使用范围比较广,从应用软件到web开发都有它的身影,由于其解释语言的特点,比较适合轻量级或原型开发;
java(有噱头的语言)
java由于其跨平台可移植性,在web开发领域大放异彩,特别是在企业级web开发,同时由于android系统采用java来开发应用程序,所以也随着android的发展而应用越发广泛;
javascript(有潜力的语言)
javascript语言由于其是浏览器内置的脚本语言,是web前端开发的主流,近年来由于google的v8引擎开源,出现了node.js之类javascript后台开发框架,把javascript的应用领域扩展到了web后台。
php(低调奢华的语言)
独特的语法混合了c、java、perl以及php自创的语法。它可以比cgi或者perl更快速地执行动态网页;还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
理清不同语言间主要语法特性的差异,才能更好的在合适的领域或场景下去应用合适的编程语言,以满足我们所面对的需求。这六种语言都是从c语言发展而来,所以它们的语法都比较像c语言,下面我就主要语法特性对各个语言做一个对比。
1、常量定义
c:#define test 0
c++:#define test 0
或者
const test = 0;
python:test = 0
c#:不支持
php:define(‘test’, 1);
java:final int test = 0;
分析:javascript不支持常量,c、c++都用特有的预定义宏,php用特殊的define语法,其它的都用定义不变变量的方式。
2、变量定义
c:int test = 0;
c++:int test = 0;
python:test = 0
javascript:val test = 0;
php:$test = 0;
java:int test = 0;
分析:这个最基本的都支持了。
3、函数定义
c:int test(int param){}
c++:int test(int param){}
python:def test(param):
javascript:function test(param){}
php:function test($param){}
java:public class test{
public int test(int param){} }
分析:这个也是最基本的了,只是java比较特殊,不支持定义类之外的函数。
4、类定义(含继承)
c:不支持
c++:class test2: public test1{}
python:class test2(test1):
javascript:function test2(){}
test2.prototype =inherit(test1.prototype){}
php:class test2 extend test1{}
java:class test2 extends test1{}
分析:c由于是传统面向过程的语言不支持类,其他的都支持了,只是javascript的类模型比较特殊,把函数作为类来使用。
5、对象定义
c:不支持
c++:test2 obj = new test2();
python:obj = test2()
javascript:var obj = new test2();
php:$obj = new test2();
java:test2 obj = new test2();
分析:除了c外其它语言都是通过new一个对象。
6、数组定义
c:int a[] = {1, 2, 3};
c++:int a[] = {1, 2, 3};
python:a = [1, 2, 3]
javascript:var a = [1, 2, 3];
php:$a = array(“1”, “2”, “3”);
java:int a[] = {1, 2, 3};
分析:数组是语言的基本特性,都支持了,只是php通过类似函数调用的语法来完成。
7、条件语句
c:if (test > 0){}
else if (test < 0){}
else{}
c++:if (test > 0){}
else if (test < 0){}
else{}
python:if test > 0:
elif test < 0:
else:
javascript:if (test > 0){}
else if (test < 0){}
else{}
php:if ($test > 0){}
elseif ($test < 0){}
else{}
java:if (test > 0){}
else if (test < 0){}
else{}
分析:这是最基本的语句,都支持了。
8、循环语句
c:for (idx=0; idx<num; idx++){}
c++:for (idx=0; idx<num; idx++){}
python:for idx in range(1,10):
javascript:for (var idx=0; idx<num; idx++){}
php:for ($idx=0; $idx<$num; $idx++){}
java:for (idx=0; idx<num; idx++){}
分析:这个也是基本的语句,都支持了。
9、foreach语句
c:不支持
c++:不支持
python:for i in a:
或者
for key in d:
d[key]
javascript:for(i in a){}
php:foreach($a as $i){}
java:for(int i : a){}
分析:foreach算是循环语句的一个变种,在操作顺序容器的时候非常有用,可以看到c和c++不支持,其它的都语言内置支持了。
10、打印语句
c:printf(“test: %d”, val);
c++:cout<<“test: “<<val<<endl;
python:print “test: “+val
javascript:不支持
php:echo “test: $val”;
java:system.out.println(“test :”+val);
分析:打印算是语言所运行环境的支持库功能,除了javascript外都支持了,因为javascript主要使用来操控dom树的,没有自己的输出窗口所以也没必要支持。
11、字符串定义
c:char test[] = {“helloworld”};
c++:string test = “helloworld”;
python:test = “helloworld”
javascript:var test = “helloworld”;
php:$test = “helloworld”;
java:string test = “helloworld”;
分析:这个都支持了,其中c++、java都是用标准库来现实的。
12、字符串串接
c:test = strcat(test1, test2);
c++:test = test1 + test2;(stl库)
python:test = test1 + test2
javascript:var test = test1 + test2;
php:$test = $test1 .= $test2;
java:test = test1 + test2;
分析:很有用的功能,除了c是用标准库函数来实现,其它都是语言内置支持了。
13、字符串分割
c:不支持
c++:test.substr(3, 8);
python:test[3:8]
javascript:test.slice(3, 5);
php:substr($test, 3, 5);
java:test.substring(3, 8);
分析:常用的功能,c不支持,python是语言内置支持,其他的都依靠库来完成。
14、字符串正则表达式
c:不支持
c++:不支持
python:test.replace(“test1”, “test2”)
javascript:test.replace(/test1/gi, “test2”);
php:str_replace($test, “test1”, “test2”);
java:test.replaceall(“test1”, “test2”);
分析:常用的功能,可惜c、c++不支持,其他都有标准库来支持。
15、内置容器类型
c:数组
c++:数组
顺序容器 vector
关联容器 pair mapset
python:列表/元组
字典
javascript:数组
对象
php:数组(含关联数组)
java:数组
序列 collection
映射表 map
分析:c最简单只支持数组,其他都支持容器,不过主要还是顺序容器和关联容器两大类。
16、注释方式
c:/* */
c++://
python:#
javascript:/* */
//
php:/* */
//
#
java:/* */
//
分析:大概就/**/、//、#三种方式,各自支持情况不一。
17、多线程支持
c:支持
c++:支持
python:支持
javascript:不支持
php:不支持
java:支持
分析:四种通用编程语言都支持了,两种专用编程语言都不支持。
18、socket支持
c:支持
c++:支持
python:支持
javascript:不支持
php:支持
java:支持
分析:除了javascript以外都支持,这也是javascript的应用领域限制所决定的。
19、垃圾回收机制
c:不支持
c++:不支持
python:支持
javascript:支持
php:支持
java:支持
分析:这是现代语言的重要机制,c和c++不支持,其他的都支持了。
20、引入其他文件中的函数
c:export int test();
c++:export int test();
python:from test import *
javascript:<script language=’javascript’ src=”test.js”charset=”utf-8″></script>
php:require_once(‘test.php’);
或者
include_once(‘test.php’);
java:import java.util.test.*;
分析:都支持,c和c++用export,python和java用import,javascript依靠html脚本,php用自己的函数调用。
21、将字符串作为指令执行
c:不支持
c++:不支持
python:eval(“port=5060”)
javascript:eval(“port=5060;”);
php:eval(“port=5060;”);
java:porcess proc = new processbuilder(“test”).start();
分析:很有用的一个动态语言特性,c和c++都不支持,java要类库来支持,其它的语言内置eval关键字.
上一篇: java多维数组怎么赋值(java字符串数组初始化)
下一篇: 2.3.9 python 内置函数