前端跟python对比_Python与JS对比

¶ Python VS Javascript 写法与用法大全表

相同语法之间,python 和 js 的写法对比。以及一些主要规范上不同的地方。方便吸收与学习,也防止学混了。 只是关注写法。有可能代码有问题的,请大佬指点。

¶ 注释

python:

# 丼号后边的内容会被 注释

1

javascript:

// 第一种:行注释

/*

第二种:块注释

可以注释多行

if('js'){

console.log('哈哈哈')

}

*/

1

2

3

4

5

6

7

8

9

¶ 打印

重点关注其返回值

python:

print('打印店')

# [返回值None] 调用后返回None,如a = print(a) -> None

1

2

javascript:

console.log('打印店')[返回值undefined] 调用后返回undefined, 如a = console.log() - > undefined

1

¶ 数据类型

¶ 1、数据类型对比表 类别 python js 字符串 【str】: 'demo' 【string】: 'demo'

数字 【int】: 整数 1

【float】: 浮点数 1.2 【number】: 数字 1 或 1.2

布尔值 【bool】: True 、 False 【boolean】: true 、 false

未定义 - 【undefined】: undefined

空值 【None】: None 【null】: null

对象

or

字典 【dict】:字典

{'小明':95,'小刚':90} 【object】:对象

{'小明':95,'小刚':90}

数组

or

列表 【list】:列表

['小明','小刚'] 【array】:数组

['小明','小刚']

元祖 【tuple】:元组

('runoob',786,True) -

(ts 有元祖)

set 对象

or

集合 【set】: 集合: set() 【set】: set 对象:

new Set([1, 2, 3, 4, 5])

¶ 2、类型判断

¶ (1)、type()

python: *注: python 特点:这个时候,我们一般会选择用 type()函数查看一下数据类型,因为 Python 是一门面向对象编程的语言,只有知道是什么对象,才能调用相关的对象属性和方法。

type('str') # 打印:

type(1) # 打印:

type(1.3) # 打印:

type(None) # 打印:

type(True) # 打印:

type({}) # 打印:

type([]) # 打印:

type(('1')) # 打印:

def a():

pass

type(a) # 打印:

1

2

3

4

5

6

7

8

9

10

11

javascript:

typeof "string"; //打印:'string'

typeof 1; //打印:'number'

typeof 2.3; //打印:'number'

typeof true; //打印:'boolean'

typeof undefined; //打印:'undefined'

typeof null; //打印:'object'

typeof {}; //打印:'object'

typeof []; //打印:'object'

typeof new Set(); //打印:'object'

typeof function a() {}; //打印:'function'

1

2

3

4

5

6

7

8

9

10

¶ (2)、instanceof 和 isinstance

python:isinstance

b = [1]

isinstance(b,list) # 返回 True

isinstance(b,dict) # 返回 False

1

2

3

javascript: instanceof

b = [1];

b instanceof Array; // 返回true

b instanceof Object; // 返回false

1

2

3

¶ 3、类型转换规则

python:

无隐式类型转换

不同类型的数据进行算式运算会报错

字符串拼接数字也不可以

int('123.3') 报错

for循环 不能 遍历 整数、浮点数、布尔值

1

2

3

4

5

javascript:

有隐式类型转换;

不同类型进行算式运算会先通过类型转换;

字符串和数字相加是拼接字符串;

1

2

3

¶ 4、类型转换方法

python:

# str(数字、浮点数)

# int(数字、字符串正数数字)

# float()

1

2

3

javascript:

// String()、 toString() 等不同数据类型的数据原型上有不同的用法规则

// Number()、 parseInt()

// parseFloat()

1

2

3

¶ 运算符

¶ 1、幂运算

python:

** : 返回 x 的 y 次幂

print(2**3) # 8

1

javascript:

Math.pow(x,y) : x 的 y 次幂,x-底数,y-幂数。xy 是数字

Math.pow(2, 3); // 8

1

¶ 2、取整除

python:

// 返回商的整数部分

print(8//3) # 2

1

javascript:

parseInt(x/y) 取整函数

parseInt(8 / 3); // 2

1

¶ 3、递增

python:

# 第一种

x = x + 1

# 第2种

x += 1

1

2

3

4

5

javascript:

// 第一种

x++; // 每次递增1

// 第二种

x += 1; // 这点和py是相同的

1

2

3

4

5

¶ 逻辑运算符

¶ 1、与

python:【与】and

if 1 and 2:

print('条件成立')

1

2

javascript:【并且】&&

if(1 && 2){

console.log('条件成立')

}

1

2

3

¶ 2、或

python:【或】or

if False or 3:

print('条件成立')

1

2

javascript:【或者】||

if(false || 3){

console.log('条件成立')

}

1

2

3

¶ 3、非

python:【非】not

if not False:

print('条件成立')

1

2

javascript:【取反】!(英文感叹号)

if(!false){

console.log('条件成立')

}

1

2

3

¶ 表达式

¶ 1、全等判断

python:

== : 没有三等,只有 js 特殊因为他有隐式类型转换

print(1 == '1') # False

1

javascript:

=== : 全等判断必须用三个等号,两个的会进行隐式类型转换

console.log(1 === "1"); // false

1

¶ 语句

¶ if 语句

python:

if 4 < 2:

print('if')

elif 3 > 3:

print('elif')

else:

print('else')

1

2

3

4

5

6

javascript:

if (1 < 2) {

console.log("if");

} else if (3 > 4) {

console.log("else if");

} else {

console.log("else");

}

1

2

3

4

5

6

7

¶ else

python:

# else可以用在if、for、while等后边

1

javascript:

// else只能用在if后边

1

¶ for 循环

python:

# for遍历字符串

for i in '123':

print('for循环可以遍历字符串',i) #1、2、3

# for遍历整数

for i in range(3):

print(i) #0、1、2

# for遍历列表

myList = [1,2,3]

for i in range(len(myList)):

print(i) #0、1

# for + else的情况:

for i in [8,9]:

print(i,'==') #8、9

else:

print('haha') #haha

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

javascript:

for (var i in [1, 2, 3]) {

console.log(i);

}

for (var i = 0; i < 2; i++) {

console.log(i);

} // 0、1、

1

2

3

4

5

6

7

¶ while 语句

python:

# 无限死循环

while True:

print('无限死循环')

# 非无限死循环

a = 0

while a < 2:

print('不是无限死循环')

a += 1

1

2

3

4

5

6

7

8

9

javascript:

while (true) {

console.log("无限死循环");

}

var a = 0;

while (a < 2) {

console.log("不是无限死循环");

a++;

}

1

2

3

4

5

6

7

8

9

¶ 函数

¶ 1、函数定义

python:

def hanshu(a,b):

c = a * b

return c

result = hanshu(1,2)

print(result)

1

2

3

4

5

javascript:

function hanshu(a, b) {

var c = a * b;

return c;

}

var result = hanshu(1, 2);

console.log(result);

1

2

3

4

5

6

¶ 2、参数类型

python: 位置参数

默认参数

不定长参数 - *定义

对应参数(配合默认参数使用)

# 示例

def etc(size=1,number=None,time=None):

print(size,number,time)

etc(size=1.5,number=2) # 在多个参数的时候很好用

1

2

3

4

5

javascript: 位置参数

默认参数

不定长参数 - arguments 接受

对应参数(也需要默认参数的支持)

// 示例:

function etc(size = 1, number = null, time = None) {

console.log(size, number, time);

}

etc(1.5, null, 2); // 在多个默认参数的时候就必须一一对应

1

2

3

4

5

¶ return 规则

python:

没有 return 语句的函数,Python 也会在末尾隐性地加上 return None,

即默认返回 None 值。

result = etc(1.5, null, 2)

print(result) # None

1

2

javascript:

没有 return 语句的函数,JavaScript 也会在末尾隐性地加上 return undefined,

即默认返回 undefined 值。

var result = etc(1.5, null, 2);

console.log(result); // undefined

1

2

¶ 类的创建

python:

class Person:

mytype = '人类'#

父类的属性

def __init__(self): #初始化init函数, 不是constructor函数

pass

def eating(self): #是self指向实例化对象, 不是this

print(self.mytype + self.name + '生下来就会吃饭')

class Gjf(Person): #继承写法不一致, 不用extends, 直接括号继承

def __init__(self, name, age = 18):

self.name = name

self.age = age

def greeting(self, yourName):

print('%s岁的%s向%s说hello!' % (self.age, self.name, yourName))# 字符串的拼接写法不一致

gjf = Gjf('小石头')# 没有new构造函数, 直接调用构造函数即可

gjf.eating()

gjf.greeting('郭菊锋')

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

javascript:

// es5的面向对象与继承

function Person() {

this.type = "人类";

}

Person.prototype.eating = function() {

console.log(this.type + this.name + "生下来就会吃饭");

};

function Gjf(name, age = 18) {

this.name = name;

this.age = age;

}

Gjf.prototype.greeting = function(yourName) {

console.log(`${this.age}岁的${this.name}向${yourName}说hello!`);

};

Gjf.prototype.__proto__ = new Person();

var gjf = new Gjf("guojufeng");

gjf.eating();

gjf.greeting("xing.org1^");

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

// es6的面向对象写法

class Person {

constructor() {

this.type = "人类";

}

eating() {

console.log(this.type + this.name + "生下来就会吃饭");

}

}

class Gjf extends Person {

constructor(name, age = 18) {

super();

this.name = name;

this.age = age;

}

greeting(yourName) {

console.log(`${this.age}岁的${this.name}向${yourName}说hello!`);

}

}

var gjf = new Gjf("guojufeng");

gjf.eating();

gjf.greeting("小石头");

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

¶ 异常捕获

python:

# 【待补充】

1

javascript:

// 【待补充】

1

¶ 模板字符串

python:

print('%s字符串%s' %('我是','哈哈'))

1

javascript:

// es6知识点

name = "我是";

hah = "哈哈";

console.log(`${name}字符串${hah}`);

1

2

3

4

¶ 模块

持续补充中.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值