最后
文章到这里就结束了,如果觉得对你有帮助可以点个赞哦
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
print ‘so boring’
但在JavaScript
中,“methods
”的通俗定义是指语言规范中内置的方法,例如:Function.prototype.apply()
。
在MDN
上有对二者的解释:
在大多数方面,Functions
和methods
相同,但有两个主要区别:
-
methods
可以被隐式传递到调用该methods的对象上。 -
methods
能够对类中包含的数据进行操作。
然鹅,在JavaScript
中,“类”只是语法糖的存在,稍后我们再进行对比。
在模板字符串上,JavaScript
之前是领先于python
的。
// JavaScript
let exclamation = ‘Whoa!’;
let sentence = They are really similar to Python.
;
console.log(Template Literals: ${exclamation} ${sentence}
);
python
print ‘打印: {} {}’.format(‘Whoa.’, ‘Quite!’)
打印: Yup. Quite!
{}
充当占位符。 这种语法被诟病颇多,于是在后来的Python3.6
版本中,又提供了一种字符串格式化语法——f-strings
。
直接对比:
name = “Tom”
age = 3
print(f"他叫 {name}, {age} 岁")
“他叫Tom, 3 岁”
JavaScript再次完美“借鉴”Python:
// JavaScript
function nom(food=“ice cream”) {
console.log(Time to eat ${food}
);
}
nom();// Time to eat ice cream
Python
def nom(food=“ice cream”):
print ‘Time to eat {}’.format(food)
nom() # Time to eat ice cream
Rest参数语法,使我们可以将不定数量的参数表示为数组,传入函数中。
-
在Python中,它们称为* args
-
在JavaScript中…xxx就表示为其余参数。
// JavaScript
function joke(question, …phrases) {
console.log(question);
for (let i = 0; i > phrases.length; i++) {
console.log(phrases[i]);
}
}
let es6Joke = “Why does JS single out one parameter?”
joke(es6Joke, “Because it doesn’t”, ‘really like’, ‘all the REST of them!’);
// Why does JS single out one parameter?
// Because it doesn’t
// really like
// all the REST of them!
Python
def pirate_joke(question, *args):
print question
for arg in args:
print arg
python_joke = “What’s a Pyrate’s favorite parameter?”
pirate_joke(python_joke, “*args!”, “*arrgs!”, “*arrrgs!”)
What’s a Pyrate’s favorite parameter?
*args!
*arrgs!
*arrrgs!
众所周知,ES6类实际上是语法糖。 Python具有内置的类,可以快速,轻松地进行面向对象的编程。
而JavaScript原型链继承,是每个前端的必须课。
// JavaScript
class Mammal {
constructor() {
this.neocortex = true;
}
}
class Cat extends Mammal {
constructor(name, years) {
super();
this.name = name;
this.years = years;
}
eat(food) {
console.log('nom ’ + food);
}
}
Python
class Mammal(object):
neo_cortex = True
class Cat(Mammal):
def init(self, name, years):
self.name = name
self.years = years
def eat(food):
print ‘nom %s’ % (food)
fry_cat = Cat(‘Fry’, 7)
fry_cat.eat(‘steak’)
心而论,Python的写法更优雅。。。
ES6的模块语言借鉴于python,却优秀于它。两者之间有一些区别:
-
JavaScript导入是静态的;Python是动态的。
-
JavaScript模块必须显式导出。在Python中,所有模块均可导入。
-
JavaScript具有默认导出的概念。Python没有。
python
import mymodule
mymodule.myfunc()
// javascript
import * as myalias from “./mymodule”;
myalias.myfunc();
1. 导入分模块
在javascript中,我们想导入分模块直接解构赋值就可以了
// javascript
import { myvar, myfunc } from “./mymodule”;
console.log(myvar);
myfunc();
而在python,其语义则相反:
最后
全网独播-价值千万金融项目前端架构实战
从两道网易面试题-分析JavaScript底层机制
RESTful架构在Nodejs下的最佳实践
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
一线互联网企业如何初始化项目-做一个自己的vue-cli
思维无价,看我用Nodejs实现MVC
代码优雅的秘诀-用观察者模式深度解耦模块
前端高级实战,如何封装属于自己的JS库
VUE组件库级组件封装-高复用弹窗组件
U3YTdlNDFmZDc3OTRiZWYzNjVkYjNlYzQxMF9oZC5qcGc?x-oss-process=image/format,png)
前端高级实战,如何封装属于自己的JS库
VUE组件库级组件封装-高复用弹窗组件