
1.js中可以宣告常量嗎?
const es = 'es6';
塊級作用域
//塊級作用域,會報錯str is no defined
if(true) {
const str = 'es6';
}
console.log(str);

//塊級作用域,會報錯str is no defined
if(true) {
const str = 'es6';
//在{}內有效
console.log(str);
}
const:
不允許重復宣告
不屬于頂層物件window
不存在變數提升
暫時性死區
塊級作用域
2.const宣告的常量真的不可以改變嗎?
const esObj = {
name: 'es6',
year: 2015
};
esObj.name = 'es2015';
console.log(esObj);
輸出結果:

const arr = ['es6','es7','es8'];
arr[0] = 'es2015';
console.log(arr);
輸出結果:

基本資料型別 和 參考資料型別、

如果不想被改變,凍結
Object.freeze(esObj);
Object.freeze(arr);//只能淺凍住一級的,要想深度凍住,就要使用遞回
const esObj = {
name: 'es6',
year: 2015,
extension:['es7','es8','es9']
}
//使用遞回
function myFreeze(obj) {
Object.freeze(obj);
Object.keys(obj).forEach(function(key){
if(typeof obj[key] === 'object') {
myFreeze(obj[key]);
}
});
}
3.函式有更簡單的寫法嗎?使用箭頭函式
<script>
const sum = (x, y)=>{
return x + y;
}
const res = sum(4,5);
</script>
4.箭頭函式任何場景都可以使用嗎?this指向不同的
const obj = {
name: 'dzh',
//ES6物件 簡寫的形式
showName(){
console.log(this.name)
}
};
obj.showName();
5.取值有更優雅的方式嗎?
//解構賦值
const {name, price} = course;
// 陣列的解構賦值
const courseArr = ['es6', 'es7', 'es8'];
const [a,b,c] = courseArr;
const course = {
name:'es6',
price:500,
teacher:{
name:'xinsdf',
age:34
}
}
//解構賦值
const {
name:courseName,
price,
teacher: {
name,
age
}
} = course;
6.你能在專案中準確的使用解構賦值嗎?
函式引數
<script>
const sum = ([a,b,c]) =>{
let result = 0;
for(let i = 0; i < arr.length; i++){
return += arr[i];
}
console.log(result);
}
//更簡潔的方式
const sum = ([a,b,c]) => {
console.log(a+b+c);
}
sum([1,2,3])
</script>
const foo = (name, age) => {
console.log(name, age)
}
foo({
name: '張三',
age: 20
})
函式回傳值
const foo = () => {
return {
name: "張三",
age: 20
}
};
const {name, age} = foo();
console.log(name, age);
變數互換
let a = 1;
let b = 2;
[b, a] = [a,b];
console.log(a,b);// 2 1
JSON應用
// json 前端發送資料給后端的時候
const json = '{"name": "es", "price":"500"}';
const obj = JSON.parse(json);
console.log(obj);
//或者
const {name, price} = JSON.parse(json);
console.log(name, price);
Ajax請求應用
axios.get('./xxx').then((res)=>{
cons.log(res.data)
})
//去掉()
axios.get('./xxx').then(res=>{
cons.log(res.data)
})
//決議res
axios.get('./xxx').then({data}=>{
cons.log(data)
})
//決議data里面的物件
axios.get('./xxx').then({data: {name, try}}=>{
cons.log(name, try)
})
7.ES6不能被所有瀏覽器決議怎么辦?
可以使用babel把es6轉化成es5語法



8. 如何更好的學習ES
http://es.xiecheng.live
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/302247.html
標籤:其他
上一篇:前端實作人員關系圖譜
下一篇:ES6 新特性知識點總結
