1. let、const
let
1.没有预解析
,不存在变量提升;
2.同一个作用域里, 不能重复
定义变量
,可以赋值;
3.for循环,
for循环里面是父级作用域
,里面又一个;
const:
定义变量不能修改;定义完变量 就必须有值,不能后赋值,不能修改, 一般定义配置文件;但是对象是可以修改的, Object.freeze(对象) 让它不能修改 因为对象本身就可以引用
2. 解构赋值
let [a,b,c] =[12,5, 6];
注意: 左右两边,结构格式要保持一致
json:
let {name,age, job} = {
name:'bob',
age:18,
job:'job'
};
别名: let {name:n,age:g, job:a} = json;
解构的时候可以赋默认值
let [a,b, c="默认值"] = ['aaa','bbb'];
注意:null和undefined,null是一个对象,
有值
let b = 5;
import {a,b,c} from './mod'
3.字符串模板
let name ='Bob';let age = 18;
let str = `这个人叫${name}, 年龄是 ${age}岁`;
字符串查找
str.indexOf(要找的东西) 返回索引(位置) ,没找到返回-1str.includes(要找的东西) 返回值 true/false
判断浏览器: includes
<script>if(navigator.userAgent.includes('Chrome')){
alert('是chrome')
}else{
alert('!是chrome')
}
</script>
字符串是否以谁开头:
str.startsWith(检测东西)检测地址
字符串是否以谁结尾(检测后缀):
str.endsWith(检测东西)
重复次数
str.repeat(次数);
填充字符串
str.padStart(整个字符串长度, 填充东西) 往前填充
str.padEnd(整个字符串长度, 填充东西) 往后填充
str.padStart(str.length+padStr.length, padStr)