寒假學習——ES6(4)
阿新 • • 發佈:2021-02-07
寒假學習——ES6(4)
class
<script> class Paopao{ constructor(name,age){ this.name=name; this.age=age; } eat(){ console.log("吃吧"); } } let hong=new Paopao("lv",98); console.log(hong); </script>
- static標註的屬性和方法屬於類不屬於例項物件,要用類名呼叫
<script> class Phone{ static name="手機"; static change(){ console.log("我可以改變世界"); } } let huawei=new Phone(); console.log(huawei.name);//undefined console.log(Phone.name);//手機 </script>
- class的類繼承
<script> class Phone{ constructor(brand,price){ this.brand=brand; this.price=price; } call(){ console.log("用我打電話"); } } class smartPhone extends Phone{ constructor(brand,price,color){ super(brand,price);//先將父類的建構函式初始化 this.color=color; } photo(){ console.log("拍照"); } } const apple=new smartPhone("iphone",6100,"black"); console.log(apple); apple.call(); </script>
class的get set方法
//注意就是有一個隱含的不用宣告的成員屬性
<script>
class Phone{
get price(){
console.log("價格屬性被讀取");
return 'i love the new phone';
}
set price(value){
console.log("價格屬性被修改");
}
}
let p=new Phone();
p.price;//直接執行裡面的語句
console.log(p.price);//整個的結果是return的結果
p.price='free';
console.log(p);
</script>
數值擴充套件
<script>
//二進位制0b開頭八進位制0o開頭十六進位制0x開頭
let b=0b1010;
let o=0o222;
let x=0xfff;
Number.EPSILON//表示最小精度如果2個數差值小於這個誤差那麼2個數可以看成相等
Number.isFinite(100)//判斷100是否有限
Number.isNaN(123)//判斷是否為NaN
Number.parseInt('123ll')//字串轉化成整數和java的包裝器類似
Number.isInteger//判斷是否是整數
Number.trunc(3.5);//將小數抹掉
Math.sign//判斷是正數還是負數還是0
</script>
物件方法擴充套件
<script>
//1——Object.is判斷2個值是否完全相等
console.log(Object.is(22,22));//true,和全等號類似,但是它NAN也是相等的,全等號不是
//2——Object.assign()物件的合併,後面那個與前面那個重名的被覆蓋,不同的並起來
const config1={
host:'localhost8080',
port:3306,
name:'root',
pass:'123',
test:'test'
};
const config2={
host:'http://123.com',
port:33063,
name:'123.com',
pass:'123456',
test2:'test2'
}
console.log(Object.assign(config1,config2));
//3——Object.setPrototypeOf設定原型物件
</script>
模組化介紹
- 概念:將一個大的程式檔案拆分成很多小的檔案然後將小檔案組合起來
- 模組化的優勢
- 防止命名衝突
- 程式碼複用
- 高維護性
- 模組功能:
- 2個命令組成:export和import
export
命令用於規定模組對外的介面(在需要暴露的資料前面加上export即可)import
命令用於輸入其他模組提供的功能
- 2個命令組成:export和import
<script type="module">
import * as newm from "./newm.js";
console.log(newm);
</script>
//分別暴露
export let paopao='哈哈哈2048';
export function chui(){
console.log("吹泡泡");
}
//統一暴露
export{paopao,chui};
//預設暴露
export default{
paopao='哈哈哈2048';
chui:function(){
console.log("吹泡泡");
}
}
-
引入模組
//通用匯入
import * as newm from "./newm.js";
//解構賦值形式
import {paopao,chui} from "./newm.js";//as後面的是別名
import {default as m2} from "./m3.js"
//簡便形式,針對預設暴露
import m3 from "./m3.js"
- 瀏覽器使用es6模組
//在index頁面寫入js檔案的引入標籤,即利用src屬性引入一個入口檔案
<script src="./test.js" type="module"></script>
//test.js中直接用import語句即可