定义变量
let 相当于var
const 定义常量
区别
- 块级作用域 {}内 if(){} for(){}
- 没有预解析,不存在变量提升,必须先定义再使用,否则报错
- 在同一个作用域中,变量不能重复定义,但是可以重新赋值
- const定义变量不能修改,所以必须定义就赋值
解构赋值
数组
左右结构一致
let [a,b,c]=[2,4,6]
let [a, [b, c]] = [1, [2, 3]];
console.log(a,b,c) //2 4 6 //1 2 3
应用:交换数据
let a = 1;
let b = 2;
[a, b] = [b, a];
console.log(a, b); // 2 1
对象
a:num 起别名
d=‘暂无数据’ 默认数据
let { a:num, b, c,d=‘暂无数据’ } = {
a: 11,
b: 99,
c: 10
}
console.log(num, b, c); // 11 99 10
注意:top代表window
模板字符串
let age=18;
console.log(`我今年${age}岁了`)
查找字符
- indexOf() 如果存在返回的是字符的索引,若不存在返回-1
let str = 'abckoejofiw';
console.log(str.indexOf('iw')); // 9
- includes() 存在返回true,不存在返回false
let str = 'abckoejofiw';
console.log(str.includes('x')); // false
- 判断浏览器
if(navigator.userAgent.includes('chrome')){
console.log('谷歌')
}else{
console.log('不是谷歌')
}
- 判断以谁开头结尾 true/false
- str.startsWith('开头')
- str.endsWith('结尾')
- 重复字符串 str.repeat(2) // 2为重复次数
- 填充字符串
str.padStart(2,'x') 以‘x’从前填充为2位数
str.padEnd(2,'x') 以‘x’从后填充为2位数
函数
- 函数的默认参数
function( a, b="默认参数" ){}
function( {a,b}={} ){}
- 箭头函数
let show = ()=>{
//this指向函数外部的this
//箭头函数里边没有arguments,但可以用...args
//箭头函数不能作为构造函数
}
- 函数的参数的变量默认已经定义,不能重复定义
扩展运算符 (重置reset运算符) …
- 作用一 : 扩展
- 展开数组 ...[a,b,c]=a,b,c
let arr=[1,2,3]
console.log(...arr) // 1 2 3
- 重置数组 ...a == arguments
function show(...a){
consle.log(a) // [1,2,3,4]
}
show(1,2,3,4)
- 剩余数组
function show(a,b,...c){
consle.log(a,b,c) // 1 2 [3,4]
}
show(1,2,3,4)
- 复制数组
let arr=[1,2,3];
let arr2=[...arr];
console.log(arr,arr2)