-
什么是ES6,ES6都干了什么
-
ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版
-
ES6 的出现主要是为了解决 ES5 的先天不足
-
ES6和ES5的区别 ES6都新增了什么 ES6都有哪些新的语法:
1.多了很多语法糖
什么是语法糖 就是一些很简便的写法 比如你的箭头函数 解构赋值 展开运算符 比如class类
2.let 和const
这两个也是es6新增的变量修饰词 let声明的变量不会提升 不能重复声明 const声明一个常量 不能改变
3.新增了很多的API
API说白了就是别人提供好的方法 或者说具有一定功能的函数 我们可以去调用
学完后端后 后端需要给前端提供API接口,那么这里的API接口 说白了
也是具有一定功能的请求地址
比如我后端写了一个增加用户的接口 那么前端调用这个接口把数据传过去
后端就可以把传过来的数据添加到数据里里面
API接口就是 别人给你准备好的具有一定功能的方法或者地址
主要是数值的 对象的 字符串的
-
ES6对字符串的拓展
-
let url="www.baidu.com"
-
1.判断一个字符串是否以某个子串开头:.startWit
-
console.log(url.startsWith("www"));
2.判断一个字符串是否已某个子串结尾:.endsWith
console.log(url.endsWith("com"));
3.判断一个字符串是否包含某个子串:.includes
console.log(url.includes("baidu"));
4.重复某个字符串:.repeat
console.log(url.repeat(10));
字符串拼接
let name="百度"
let url="www.baidu.com"
console.log(`${name}的网址是${url}`);
打印出来就是百度的网址是www.baidu.com
ES6对数值的拓展
新的整形字变量;
let num=10; //10表示十进制
let num1=0x10 //表示十六进制
let num2=0b100 //0b开头表示二进制
let num3=0o17 //0o表示八进制
新的number方法
判断一个数字是否是NaN isNaN
let a=1;
let b=undefined;
console.log(Number.isNaN(a));
console.log(Number.isNaN(a+b));
判定一个数是否是无穷大 isFinite
console.log(Number.isFinite(-Infinity));
返回一个字符串中开头的数 parseFloat
console.log(parseFloat("100年以后"));
返回一个字符串中开头的整数 parseInt
console.log(parseInt("3.1415926是圆周率近似值"));
进制运算
console.log(parseInt("84",9));
// 返回9进制的84 转换成10进制的数
console.log(parseInt("66",7));
// 返回7进制的66 转换成10进制的数
对函数的拓展
就是箭头函数
1.无参无返
let f1 = () => {
}
2.有参数 没有返回值的时候 这种你可以在()写多个参数
let f2 = (item) => {
}
这种只能有一个参数
let f3 = item => {
}
3.有返回值 没有参数
let f4 = () => 1;
//如果 只有一个return 那么可以把{}和return 都省略
4.有参数也有返回值
let f5 = item => item;
// 这个意思是 有一个参数item 并且函数返回了item
let f6 = (item, index) => item;
let f7 = (item, index) => {
console.log(index);
return item;
}
5.如果代码块只有一行代码 {}也可以省略
let f8 = () => console.log(123);
6.返回一个对象
let f9 = () => { a: 1 };
注意!
1.只有一个形参的时候,()可以不写
2.函数体中如果有一条非retnrn语句 {}可以不写
3.函数体中如果只有一个return语句,那么{}和return 都不用写
4.函数体中如果返回一个对象,需要用{}包裹起来
5.箭头函数中的this指向最外面的那一级
收集参数 利用的arguments
function fn(a,b,c,d){
console.log(arguments);
console.log(Array.isArray(arguments));
}
fn(1,2,3,4)
对数组的拓展
遍历数组的方式
1.for循环
2.forEach
3.for in
4.for of
let arr=[1,2,3,4,5]
for(let i=0;i<arr.length;i++){
console.log(arr[i]);
}
console.log("-------------");
arr.forEach(item => {
console.log(item);
});
console.log("-------------");
for (let index in arr) {
console.log(arr[index]);
}
console.log("-------------");
for (let item of arr) {
console.log(item);
}
遍历对象的方式
1.for in
2.Object.keys
3.Object.values
4.Object.entries
let obj={
name:"wc",
age:"18",
id:14258
}
for (const key in obj) {
// key是键 也就是属性名
console.log(key+":"+obj[key]);
// 这里面不能打点使用 要使用[]
}
// Object.keys
console.log(Object.keys(obj));//把对象里面的所有键 也即是属性名放到一个数组里面
console.log(Object.values(obj));//把对象里面的所有值 也就是属性值放到一个数组里面
console.log(Object.entries(obj));//把对象里面的键值对 放到一个数组里
find:在一个数组中找到满足条件的第一个元素 并返回这个元素 如果没有则返回undefined
findIndex:在一个数组中找到满足条件的第一个元素并返回这个元素的索引 如果没有则返回-1
includes:判断一个数组中是否包含某个元素 如果包含则返回true否则false
map:对数组中的每一个元素进行加工 返回一个加工后的新数组
filter:对数组中每一个元素进行过滤 返回过滤后的新数组
some:遍历数组中的每一个元素,只要有一个元素满足条件,则返回true 并且立即停止遍历
every:遍历数组中的每一个元素 所有元素都满足条件后 返回true 有一个不满足就返回else 并停止遍历
对对象的拓展
当你的属性名和属性值相同的时候 就可以直接简写
let name="wc";
let age="18";
let obj={ name,age}
展开运算符
展开运算符 展开数组
let arr1=[1,2,3]
let arr2=[4,5,6]
console.log(...arr1);
console.log(arr1);
let arr3=[...arr1,...arr2]
console.log(arr3);
console.log(...arr3);
展开对象
let obj1={name:"zhangsan",age:18};
console.log(obj1);
let obj2={name1:"李四",age1:18};
let obj3={...obj1,...obj2}
// 因为属性名一致的时候会覆盖
// 我们对象中 不存在重复属性
console.log(obj3);