常用编程语言语法对比

特性JavaJavaScriptPython
基本数据类型

字符串

Stringstringstr
整形byteshortintlongnumberint
浮点型floatdoublenumberfloat
布尔型booleanbooleanbool(True or False)
对象类型数组/列表定义int[] numbers = {1, 2, 3, 4, 5};(长度不可变)let numbers = [1, 2, 3, 4, 5];numbers = [1, 2, 3, 4, 5]
Arrays.add(numbers, 6);(需使用工具类)numbers.push(6);numbers.append(6); 或 numbers += [6]
较复杂

numbers.pop();(移除最后一个元素)

numbers.splice(index, 1);(移除特定位置)数组切片

del numbers[-1](移除最后一个元素)

numbers.pop(index)(移除特定位置

numbers[0] = 10;numbers[0] = 10;numbers[0] = 10
int i = numbers[0];let i = numbers[0];i = numbers[0]
长度判断numbers.lengthnumbers.lengthlen(numbers)
集合定义Set<Integer> set = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));let set = new Set([1, 2, 3, 4, 5]);set = {1, 2, 3, 4, 5}
set.add(6);set.add(6);set.add(6)
set.remove(1);set.delete(1);set.discard(1) 或 del set[1](如果是有序集合)
boolean contains = set.contains(1);

1. let contains = set.has(1);

2. 对象类型也支持 in

contains = 1 in set
map定义Map<String, Integer> map = new HashMap<>();let map = new Map();map = {}
map.put("key", 1);map.set("key", 1);map["key"] = 1
map.remove("key");map.delete("key");del map["key"]
map.put("key", 2);map.set("key", 2);map["key"] = 2
Integer value = map.get("key");let value = map.get("key");value = map.get("key") 或 value = map["key"]
空对象null

1. null

2.NaN是一个特殊的数字值(typeof NaN的结果为number),是not a number的缩写,表示不是一个合法的数字。

3.undefined是一个特殊的值,它表示变量已经声明但还没有被赋值

None

布尔值为false

1、undefined(未定义,找不到值时出现)

2、null(代表空值)

3、false(布尔值的false,字符串"false"布尔值为true)

4、0(数字0,字符串"0"布尔值为true)

5、NaN(无法计算结果时出现,表示"非数值";但是typeof NaN==="number")

6、""(双引号)或''(单引号) (空字符串,中间有空格时也是true

  • 布尔值:False
  • 数值:0或0.0
  • 字符串:空字符串,如’'或""
  • 容器:空的容器,如[],(),{},set()
  • None:None
常用操作类型判断if (obj instanceof String) 

1. typeof myVar === 'undefined')

3if (obj instanceof String) 

type(obj) 

if isinstance(list_var, list):

判断等于

equals: 判断值相等

== 判断对象相同

== 判断值相等

=== 判断值&类型相等

== 判断值相等

a is b 判断对象相同

变量声明int myInt = 10;let myInt = 10;my_int = 10
注释

单行://

多行:/* */

同Java

单行:#

多行:""""""

控制流语句if / else

if  (condition)  { 

...

} else if {

...

} else{

...

}

同 java

if condition :

    ...

elif condition :

    ...

else:

    ...

for 循环

基本的for循环:

for (int i = 0; i < 10; i++){...}

增强的for循环:

for (int x : 数组等)

{...}

使用范围的for循环(Java 8及以上)

IntStream.range(0, 10)

.forEach(i -> System.out.println(i));

基本for循环:

for (let i = 0; i < 10; i++) {...}

forEach循环:

const array = [1, 2, 3, 4, 5];

array.forEach(element => {

console.log(element);

});

for...in循环(通常用于对象属性的遍历):

const obj = { a: 1, b: 2, c: 3 };
for (const key in obj) {
    console.log(key, obj[key]);
}

for...of循环(用于遍历可迭代的数据,如字符串、数组、Map、Set等):

const array = [1, 2, 3, 4, 5];

for (const element of array) {

console.log(element);

}

基本的for循环:

for item in iterable:

# do something with item

对象类定义public class MyClass {
    // 构造方法
    public MyClass(int value) {
        this.value = value;
    }
}
    
class MyClass {
  constructor() {
    // 构造函数内的代码会在创建新对象时执行
    this.myProperty = 'Hello, World!';
  }
}
// 使用类创建一个新的实例
const myInstance = new MyClass();
class MyClass:
    def __init__(self, value):  # 构造函数
        self.my_attribute = value  # 实例属性
 
属性定义对象属性必须定义在构造函数外对象属性必须定义在构造函数外

1. 对象属性定义在构造函数

2. 构造函数外属性为类属性

对象实例化MyClass obj = new MyClass();

let obj = new Object(); 或 let obj = {};

const myInstance = new MyClass();

obj = MyClass()
继承使用extends关键字使用extends关键字使用class MyClass(ParentClass):
要求先实例化父对象要求先实例化父对象要求先实例化父对象
接口定义使用interface关键字定义TypeScript支持接口,原生JS不支持无接口
抽象类abstract 生命抽象类abstract 生命抽象类

@abstractmethod

def hobby(self): pass

其他特点
静态类型是,需要显式声明变量类型否,动态类型否,动态类型
访问修饰符支持publicprivateprotected无直接支持,但可通过命名约定实现支持publicprivate_protected(约定)
泛型支持泛型编程TypeScript支持泛型,原生JS不支持支持泛型编程
函数返回值类型

function greet(name: string): string {

return `Hello`;

}

def greet(name: str) -> str:     

    return f"Hello, {name}!"

变长参数public void print(String... args){}function myFunction(...args) {
  console.log(args); // 输出一个数组,包含所有传入的参数.基本同java
}
def print_args(*args):
    print(args) # 元组
 
def print_kwargs(**kwargs):
    print(kwargs) # 字典
可选参数不支持function greet(name, age = null) {}def greet(name, greeting='Hello'):

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值