python去除(京東,抖音,小紅書等等)視訊水印
阿新 • • 發佈:2020-11-25
此文轉載自:https://blog.csdn.net/weixin_50539818/article/details/109999158#commentBox
文章目錄
ES6總結
var,let,const的區別
1.var 變數可以提升,let,const變數不可以提升
2.var 沒有暫時性死區,let,const有暫時性死區
3.var 允許重複宣告,let,const不可以重複宣告
4.var 和let可以修改宣告的變數,const不可以修改
5.var 沒有塊級作用域,let和const有塊級作用域
箭頭函式和function的區別
1.箭頭函式是匿名函式,不能作為建構函式,不能使用new 2.箭頭函式內沒有arguments,可以用展開運算子...解決 3.箭頭函式的this,始終指向父級上下文(箭頭函式的this取決於定義位置父級的上下文,跟使用位置沒關係,普通函式this指向呼叫的那個物件) 4.箭頭函式不能通過call() 、 apply() 、bind()方法直接修改它的this指向。(call、aaply、bind會預設忽略第一個引數,但是可以正常傳參) 5.箭頭函式沒有原型屬性
結構賦值
1 結構賦值就是從物件或陣列中提取值,吧右邊的值賦給左邊
2 分為資料結構,物件結構,結構賦值,結構物件,從方法中返回
原型
例項化物件和原型的constructor指向建構函式
建構函式的prototype屬性指向原型物件
例項化物件的__proto__屬性指向原型物件
JavaScript裡面每個物件都有一個__paoto__屬性,這個屬性就是他的原型
每個方法裡面都有一個prototype屬性,也是他的原型
原型鏈
例項化物件的__proto__指向建構函式的prototype
建構函式prototype的__proto__指向Object.prototype
Object.prototype的__proto__指向null
繼承
1.原型鏈繼承
父類的例項做為子類的原型
function Fu(){
this.arr=['red','blue','green']
}
function Zi(){}
Zi.prototype=new Fu();
var a=new Zi
a.arr.push('black')
2.建構函式繼承
在子類內,使用call呼叫父類方法,並將父類的this修改為子類的this,相當於是吧父類的例項屬性複製了一份放到子類的函式內
function Fu(){
this.arr=['red','blue','green'];
}
function Zi(){
Fu.call(this);
}
var a=new Zi();
a.arr.push('black')
console.log(a.arr)
3.組合式繼承
既能呼叫父類例項屬性,又能呼叫父類原型屬性
function Fu(name){
this.name=name;
this.arr=['red','blue','green'];
}
Fu.prototype.say=function(){
console.log(this.name)
}
function Zi(name,age){
Fu.call(this,name);
this.age=age;
}
Zi.prototype=new Fu();
var a=new Zi('black',21,'女')
a.say()//成功繼承
4.class類繼承
相當於es5中建構函式
class中定義方法時,前後不能加function,全部定義在class的protopyte屬性中
class中定義的所有方法是不可列舉的
class中只能定義方法,不能定義物件,變數等
class和方法內預設都是嚴格模式
es5中constructor為隱式屬性
class Fu(){
constructor(name){
this.name=name
}
say(){
console.log(this.name)
}
}
class Zi extends Fu{
constructor(name,age){
super(name)
this.age=age
}
say(){super.say()}
}
var a=new Zi('張三')
a.say()
Promise
1.概述:Promise是非同步程式設計的一種解決方案,從語法上講,Promise是一個物件,可以獲取非同步操作的訊息
2.目的: (1)、避免回撥地獄的問題(2)、Promise物件提供了簡潔的API,使得控制非同步操作更加容易
3.Promise有三種狀態:pendding //正在請求,rejected //失敗,resolved //成功
4.基礎用法:new Promise(function(resolve,reject){ })
resolved,rejected函式:在非同步事件狀態pendding->resolved回撥成功時,通過呼叫resolved函式返回結果;當非同步操作失敗時,回撥用rejected函式顯示錯誤資訊
$(function(){
// 封裝一個promise;將url提取出來;
var p = function(url){
return new Promise(function(resolve,reject){
$.get(url,function(data){
resolve(data);
})
})
}
Promise.all([
p("https://cnodejs.org/api/v1/topics?tab=good"),
p("https://cnodejs.org/api/v1/topics?tab=share"),
]).then(function(result){
console.log(result);
})
})