1.课程介绍
ECMAScript简称ES,可以看作一套标准
js就是实施这套标准的语言
主流浏览器用es5
现在以年代命名
2作用域let
即申明一个变量后什么时候可以去使用它
if (true) {
var fruit = ‘apple‘;
}
console.log(fruit);
输出apple
if (true) {
let fruit = ‘apple‘;
}
console.log(fruit);
输出报错,未定义
用let定义的变量,在块的外面就不能使用了,使用大括号{}分为块
3.const
使用它可以去声明一个恒量,这样就可以让他不能再去分配新的值
const fruit = [];
fruit.push(‘apple‘);
fruit.push(‘lemon‘);
console.log(fruit);
输出Array [ "apple", "lemon" ]
const fruit = [];
fruit.push(‘apple‘);
fruit.push(‘lemon‘);
fruit = [];
console.log(fruit);
输出报错
4解构数组
场景:将函数返回的数组,一一赋值给对应的变量
老的思路
function foods(){
return [‘xx‘,‘xx‘];
}
var tmp = foods();
var hot = tmp[0], cold = tmp[1];
对应变量和临时变量数组内的值一一对应
解构数组思路
function foods(){
return [‘xx‘,‘xx‘];
}
let [hot,cold] = foods();
console.log(hot,cold);
输出xx xx
5解构对象
function foods(){
return {‘hot‘:‘x1‘,‘cold‘:‘x2‘};
}
let {‘hot‘:hotfoods,‘cold‘:coldfoods} = foods();
console.log(hotfoods,coldfoods);
输出x1 x2
以此分别使用该对象里的值
6模板字符串
场景:希望把两个变量连成一句话
老方法
let hotfood = ‘x1‘,
coldfood = ‘x2‘;
let foods = "热" + hotfood + "冷" + coldfood;
console.log(foods);
新方法(感觉有点像数据绑定)(`为反引号)
(结构为`${变量名}`)
let hotfood = ‘x1‘,
coldfood = ‘x2‘;
let foods = `热${hotfood}冷${coldfood}`;
console.log(foods);
7带标签的模板
可以通过模板字符串前面的标签来处理该字符串
1.添加模板的标签
2.添加标签函数,含有两个参数,string,...values (...为扩展运算符
以此来修改返回值
3.通过调用模板对象来调用修改的输出
let hotfood = ‘x1‘,
coldfood = ‘x2‘;
let foods = store `热${hotfood}冷${coldfood}`;
function store(strings,...values){
console.log(strings);
console.log(values);
}
console.log(foods);
输出
Array(3) [ "热", "冷", "" ]
Array [ "x1", "x2" ]
通过组合strings和values数组来定义输出
(目的在于可以使用与重复度比较高的字符串,可以简单添加修改货币符号等...)
let hotfood = ‘x1‘,
coldfood = ‘x2‘;
let foods = store`热${hotfood}冷${coldfood}`;
function store(strings, ...values) {
console.log(strings);
console.log(values);
let result = ‘‘;
for (let i = 0; i < values.length; i++) {
result += strings[i];
result += values[i];
}
result += strings[strings.length - 1];
return result;
}
console.log(foods);
输出
Array(3) [ "热", "冷", "" ]
Array [ "x1", "x2" ]
热x1冷x2
8.判断字符串里是否包含其他字符串
includes() , startsWith() , endsWith()
str.includes(‘a‘) //是否包含‘a’
str.startsWith(‘b‘) //是否是‘b’打头
str.endsWith(‘c‘) //是否是‘c‘结尾
原文:https://www.cnblogs.com/fanner7/p/10720823.html