1. 程式人生 > 其它 >基於K8s排程器實現自定義排程

基於K8s排程器實現自定義排程

ES6是什麼?和js有什麼區別?

ES時ESMAScript的簡稱,

JS由三部分組成,ESMAScript,BOM,DOM,

ES是JS中的語法規範;

BOM全稱Browser Object Model,瀏覽器物件模型,主要處理瀏覽器視窗和框架,提供了獨立於內容而與瀏覽器進行互動的物件。

DOM全稱Document Object Model,文件物件模型,是HTML和XML文件的程式設計介面;它提供了對文件的結構化的表述,並定義了一種方式可以使從程式中對該結構進行訪問,從而改變文件的結構,樣式和內容。

let、const和var的區別

let 定義的變數只在let所在的程式碼塊中有效,有塊級作用域 值可更改

cosnt 表示定義一個只讀的變數 無法被更改 (物件之類的取址賦值可以被更改)

var 是普通的定義變數的關鍵字

瀏覽器相容ES6

安裝node,用npm安裝babel

npm install babel-core@5

引用babel

我們把browser.min.js引入(檔案位置的路徑要確保正確)。並且設定第二個script標籤的type為”text/babel”。

解構賦值

ES6允許按照一定模式,從陣列和物件中提取值,對變數進行賦值,這被稱為解構賦值(Destructuring)。

傳統的變數賦值

var arr = [1,2,3]

var a = arr[0]

var b = arr[1]

var c = arr[2]

ES6解構賦值

var [a,b,c] = [1,2,3]

陣列的解構賦值

解構賦值是可以巢狀的

var [a,b,[c1,c2]] = [1,2,[3.1,3.2]]

var [a,b,c] = [1,2]

當左邊的模式(你可以理解為格式)與右邊不完全一樣的時候,那麼賦值過程中,只會給模式匹配成功的部分的變數賦值,例如:變數c沒有在右邊找到匹配的模式,所以無法進行賦值,但這並不影響變數a和變數b的賦值,因為它們在右邊找到與之匹配的模式,這種叫做不完全解構。

允許設定預設值

var [a,b,c=3] = [1,2]

var [a,b,c=3] = [1,2,4]

這個時候預設值3會被新的值4覆蓋,c的值為4;注意:當新的值為undefined的時候,是不會覆蓋預設值的。

物件的解構賦值

var {a,b,c} = {"a":1,"b":2,"c":3}

var {a,b,c} = {"a":1,"c":3,"b":2}

這兩段程式碼雖然有區別,但是結果都是一樣的。

物件的解構賦值不會受到屬性的排列次序影響(陣列則會受影響),它是跟屬性名關聯起來的,變數名要和屬性名一致,才會成功賦值。

var{ a } = {"b":2}

如果變數找不到與其名字相同的屬性,就會賦值不成功

如果你想給一個變數名與屬性名不一樣的變數解構賦值,可以這樣寫:

var { b:a } = { "b" : 2}

這樣變數a同樣可以賦值成功,a的值最終為2

物件的解構賦值也可以巢狀

var { a:{ b } } = { "a" : { "b":1 } }

b的值為1

也可以指定預設值

var { a,b = 2 } = { "a" : 1}

b的值為2

字串的解構賦值

var [a,b,c,d,e,f] = "我就是前端君"

a = 我

b = 就

c = 是

d = 前

e = 端

f = 君被轉成了類似陣列的物件

在解構賦值的過程中,將字串

解構賦值的作用

1.交換變數的值

傳統做法最常用的是引入第三個變數來臨時存放

例:

var x = 1;

var y = 2;

var z = x;

x = y;

y = z;

解構賦值

var x = 1

var y = 2

[ x , y ] = [ y , x ]