1.var 、let 、const区别
- var无论哪里定义,都会污染全局的作用域
var a=123;
{
var a=456;
}
console.log(a) //输出456
- let定义变量,作用在块作用域,不会污染到其他作用域,不能重复定义,不存在变量提升
var a=123;
//let a=123;
{
let a=456;
}
console.log(a) //输出123
- const定义常量,作用块作用域,一旦声明就无法再改变或者重新声明,不存在变量提升
var b=100;
{
const b=200;
console.log(b); //输出200
var b=300; //报错,已经声明过无法重新声明
}
console.log(b) //输出100
2.解构赋值
- 数组的解构赋值
注意:每个坑位对呀一个坑
let [a,b,c]=[10,20,30];
console.log(a,b,c) //10,20,30
- 对象的解构赋值
let {a,b}={a:'10',b:'20'};
console.log(a,b); //10 20
- 字符串的解构赋值
let [a,b,c,d]='12gf';
console.log(a,b,c,d); //1 2 g f
3.扩展运算符和rest运算符
- 对象运算符(声明了方法不确定个数的时候)
function fun(...arg){
console.log(arg[0],arg[1],arg[2],arg[3]); // 11 22 33 undefined
}
fun(11,22,33);
//后面插入不影响之前的数组
let arr1=[1,2,3];
let arr2=[...arr1];
arr2.push(55);
console.log(arr1,arr2); // [1,2,3] [1,2,3,55]
- rest运算符
确定了第一个数。不知道后面的数
function jspng(first,...arg){
for(let i of arg){ //for(let i=0;i<arg.lenght;i++)
console.log(i); //输出:2 5 3 8 10
}
}
jspng(1,2,5,3,8,10);
4.字符串模板
- 字符串连接符
// 字符串拼接
let d='学校';
let e=`${d}2019`; //let e=2019
console.log(e); //console.log(`${d+e}`) 输出:学校2019
- 判断字符串里是否有该字符串
includes里面,startsWith开头,结尾endsWith
let ff="学习";
let dd="我在房间里认真的学习这前端";
console.log(dd.includes(ff)); //true
- 复制字符串
console.log('学习'.repeat(20)); //20个‘学习’
5.数值的扩展
https://blog.csdn.net/qq_29116547/article/details/102537864
6.数组的扩展
https://blog.csdn.net/qq_29116547/article/details/102538822
7.严谨模式use strict
function fun1(a,b=3){ //严谨模式赋值会报错
'use strict'
return a+b;
}
console.log(fun1.length)
8.函数和数组
- 箭头函数
//第一种,只有一行:
var add1=(a,b=2)=>a+b;
console.log(add1(1)); //3
//第二种,有多行:
var add2=(a,b=2)=>{
console.log('json') //json
return a+b
}
console.log(add2(1)); //3
- 对象的函数解构
let json={
a:'java',
b:'技术',
c:'php'
}
function Arr({a,b,c}){
console.log(a,b,c) //java 技术 php
}
Arr(json);
- 数组的函数解构
let arr=['json','学习','web'];
function kii(a,b,c){
console.log(a,b,c) //json 学习 web
}
kii(...arr);
- in的用法
//in的用法,对象和数组判断有无
let obj={
a:'jsp',
b:'web'
}
console.log('a' in obj) //true
- 遍历数组
//数组遍历forEach
let arr=['jonp','java','php'];
arr.forEach((val,index)=>console.log(val,index)); //jonp 0 java 1 php 2
//数组遍历filter
arr.filter(i=>console.log(i)); //jonp java php
//数组遍历some
arr.some(x=>console.log(x)); jonp java php
//数组遍历map(替换)
console.log(arr.map(e=>'web')); // ["web", "web", "web"]