Каталог статей
- 1. пусть const var сравнение
- 2. Идентификация обратной кавычки (`)
- 3. Параметры функции по умолчанию
- 4. Функция стрелки
- 5. Сокращение атрибутов
- 6. Сокращение метода
- 7. Метод Object.keys (), получить все имена атрибутов или имена методов объекта.
- 8.Object.assign () Свойства и методы исходного объекта объединяются в целевой объект.
- 9. for ... of цикл
- 10. импорт и экспорт
- 11. объект обещания
- 12. Деструктуризация задания
- 13. установить структуру данных (можно использовать для быстрой дедупликации)
- 14. Оператор распространения (...)
- 15. Новый строковый метод
1. пусть const var сравнение
- Переменные, определенные с помощью let и const, не будут продвигаться, а переменные, определенные с помощью var, будут продвигаться.
- let и const - области видимости на уровне блока в JS
- let и const не допускают повторных объявлений (будут выданы ошибки)
- Переменные, определенные let и const, вызовут ошибку, если используются до определения оператора (образуют временную мертвую зону), а var - нет.
- const объявляет константу только для чтения. После объявления значение константы не может быть изменено (если объявление является объектом, то адрес ссылки объекта не может быть изменен)
2. Идентификация обратной кавычки (`)
Обозначается парой обратных кавычек (`), он может использоваться как обычная строка, он также может использоваться для определения многострочной строки, а также может встраивать переменные, выражения или функции js, переменные, выражения js или Функцию нужно записать в $ {}.
var str = `abc
def
gh`;
console.log(str);
let name = "小明";
function a() {
return "ming";
}
console.log(`我的名字叫做${
name},年龄${
17+2}岁,性别${
'男'},游戏ID:${
a()}`);
3. Параметры функции по умолчанию
ES6 предоставляет для параметров значения по умолчанию. Этот параметр инициализируется при определении функции, поэтому его можно использовать, когда параметр не передан.
function A(a,b=1){
console.log(a+b);
}
A(1); //2
A(2+3); //5
4. Функция стрелки
В es6 предоставляется краткий способ написания функций, который мы называем «стрелочными функциями».
Запись: имя функции = (формальный параметр) => {……} Если в теле функции есть только одно выражение, {} и return можно опустить, а когда в теле функции есть только один формальный параметр, () можно опустить.
Особенности: Эта функция в стрелке всегда указывает на ближайшую к ней функцию, когда функция стрелки была определена, и если ближайшей функции нет, она указывает на окно.
// Опускаем формулировку
var people = name => 'hello' + name;
var getFullName = (firstName, lastName) => {
var fullName = firstName + lastName;
return fullName;
}
5. Сокращение атрибутов
- Сокращение для атрибутов. ES6 позволяет записывать переменные прямо в объект. На данный момент имя атрибута - это имя переменной, а значение атрибута - это значение переменной.
var foo = 'bar';var baz = {
foo}; //等同于 var baz = {foo: foo}
6. Сокращение метода
Сокращение для метода. Опустите двоеточие и ключевое слово функции.
var o = {
method() {
return "Hello!";
}
};
// 等同于
var o = {
method: function() {
return "Hello!";
}
};
7. Метод Object.keys (), получить все имена атрибутов или имена методов объекта.
- Метод Object.keys () получает все имена свойств или имена методов объекта (не включая содержимое прототипа) и возвращает массив.
var obj={
name: "john", age: "21", getName: function () {
alert(this.name)}};
console.log(Object.keys(obj)); // ["name", "age", "getName"]
console.log(Object.keys(obj).length); //3
console.log(Object.keys(["aa", "bb", "cc"])); //["0", "1", "2"]
console.log(Object.keys("abcdef")); //["0", "1", "2", "3", "4", "5"]
8.Object.assign () Свойства и методы исходного объекта объединяются в целевой объект.
Object.assign () метод assign объединяет свойства и методы нескольких исходных объектов в целевой объект. Вы можете получить несколько параметров, первый параметр - это целевой объект, а следующие - исходные объекты.
var target = {
}; //目标对象
var source1 = {
name : 'ming', age: '19'}; //源对象1
var source2 = {
sex : '女'}; //源对象2
var source3 = {
sex : '男'}; //源对象3,和source2中的对象有同名属性sex
Object.assign(target,source1,source2,source3);
console.log(target); //{name : 'ming', age: '19', sex: '男'}
9. for ... of цикл
Это единый способ просмотра всех структур данных. Диапазон, который может использовать цикл for ... of, включает в себя массивы, структуры Set и Map, некоторые объекты, подобные массивам (например, объект arguments, объект DOM NodeList), объекты Generator и строки.
var arr=["小林","小吴","小佳"];
for(var v of arr){
console.log(v);
}
//小林
//小吴
//小佳
10. импорт и экспорт
В стандарте ES6 JavaScript изначально поддерживает модули. Таким образом, код JS делится на небольшие блоки с различными функциями для модуляции, а коды для разных функций записываются в разных файлах.Каждому модулю требуется только экспортировать часть общего интерфейса, а затем его можно использовать в других местах, импортировав модуль.
export используется для вывода переменных интерфейса этого модуля (файл можно понимать как модуль).
Импорт используется для загрузки другого модуля с интерфейсом экспорта в один модуль.
Команды импорта и экспорта могут находиться только в верхней части модуля, но не в блоке кода.
//导入部分
//全部导入
import Person from './example'
//将整个模块所有导出内容当做单一对象,用as起别名
import * as example from "./example.js"
console.log(example.name)
console.log(example.getName())
//导入部分
import {
name } from './example'
//导出部分
// 导出默认
export default App
// 部分导出
export class User extend Component {
};
11. объект обещания
Promise - это решение для асинхронного программирования, которое выражает асинхронные операции в процессе синхронных операций, избегая вложенных функций обратного вызова.
У него есть три состояния: ожидающий выполнения, решенный-завершенный, отклоненный-неудачный.
Конструктор Promise содержит один параметр и обратный вызов с двумя параметрами: разрешить и отклонить. Выполните некоторые операции в обратном вызове (например, асинхронные), если все в порядке, вызовите разрешение, иначе вызовите отклонение. Вы можете вызвать метод обещания.then () для созданного объекта обещания, передав методы разрешения и отклонения в качестве обратных вызовов. Метод then () получает два параметра: onResolve и onReject, которые представляют успех или неудачу текущего объекта обещания.
var promise = new Promise((resolve, reject) => {
var success = true;
if (success) {
resolve('成功');
} else {
reject('失败');
}
}).then(
(data) => {
console.log(data)},
(data) => {
console.log(data)}
)
Процесс выполнения обещания
setTimeout(function() {
console.log(0);
}, 0);
var promise = new Promise((resolve, reject) => {
console.log(1);
setTimeout(function () {
var success = true;
if (success) {
resolve('成功');
} else {
reject('失败');
}
},2000);
}).then(
(data) => {
console.log(data)},
(data) => {
console.log(data)}
);
console.log(promise); //<pending> 进行中
setTimeout(function () {
console.log(promise); //<resolved> 已完成
},2500);
console.log(2);
//1
//Promise {<pending>}
//2
//0
//成功
//Promise {<resolved>: undefined}
12. Деструктуризация задания
ES6 позволяет извлекать значения из массивов и объектов и присваивать значения переменным в соответствии с определенным шаблоном, который называется деструктуризацией.
- Разрушение и присвоение массива
Значение в массиве будет автоматически преобразовано в переменную, соответствующую полученному значению. Деструктурирующее присвоение массива должно быть взаимно однозначным соответствием. Если соответствия нет, оно не определено.
var [name, pwd, sex]=["小周", "123456", "男"];
console.log(name) //小周
console.log(pwd)//123456
console.log(sex)//男
- Назначение деструктуризации объекта
Существует важное различие между деструктуризацией объектов и массивами. Элементы массива расположены по порядку, а значение переменной определяется ее положением; свойства объекта не имеют порядка, и переменная должна иметь то же имя, что и свойство, чтобы получить правильное значение.
var obj={
name:"小周", pwd:"123456", sex:"男"}
var {
name, pwd, sex}=obj;
console.log(name) //小周
console.log(pwd)//123456
console.log(sex)//男
13. установить структуру данных (можно использовать для быстрой дедупликации)
Установить структуру данных, аналогичную массиву. Все данные уникальны и нет повторяющихся значений. Сам он конструктор.
Свойства и методы:
size Длина данных
add () добавляет значение и возвращает саму структуру Set.
delete () удаляет значение и возвращает логическое значение, указывающее, было ли удаление успешным.
has () находит фрагмент данных и возвращает логическое значение.
clear () Очистить все члены, возвращаемого значения нет.
var arr = [1,1,2,2,3];
var s = new Set(arr);
console.log(s); //{1, 2, 3}
console.log(s.size); //3
console.log(s.add(4)); //{1, 2, 3, 4}
console.log(s.delete(4)); //true
console.log(s.has(4)); //false
s.clear();
14. Оператор спреда Оператор спреда (...)
Преобразовать строку в массив
var str="abcd";
console.log([...str]) // ["a", "b", "c", "d"]
Преобразовать коллекцию в массив
var sets=new Set([1,2,3,4,5])
console.log([...sets]) // [1, 2, 3, 4, 5]
Слияние двух массивов
var a1=[1,2,3];
var a2=[4,5,6];
console.log([...a1,...a2]); //[1, 2, 3, 4, 5, 6]
В функции, используемой для замены параметра arguments, параметр
rest ... имя переменной
Остальной параметр - это массив, и после него больше не может быть параметров, иначе будет сообщено об ошибке.
function func(...args){
console.log(args);//[1, 2, 3, 4]
}
func(1, 2, 3, 4);
function f(x, ...y) {
console.log(x);
console.log(y);
}
f('a', 'b', 'c'); //a 和 ["b","c"]
f('a') //a 和 []
f() //undefined 和 []
- Удалить определенные предметы
//数组
const number = [1,2,3,4,5]
const [first, ...rest] = number
console.log(rest) //2,3,4,5
//对象
const user = {
username: 'lux',
gender: 'female',
age: 19,
address: 'peking'
}
const {
username, ...rest } = user
console.log(rest) //{"address": "peking", "age": 19, "gender": "female"
15. Новый строковый метод
// 1. includes () возвращает логическое значение: указывает, найден ли символ параметра
let str = 'hahay'
console.log(str.includes('y')) // true
// 2. repeat (): повторяем строку n раз
let s = 'he'
console.log(s.repeat(3)) // 'hehehe'
// 3. startWith () возвращает логическое значение: находится ли строка параметров в начале исходной строки
console.log("lxy".startsWith('l'));//true
console.log("lxy".startsWith('x'));//false
// 4. endWith () возвращает логическое значение, указывающее, находится ли строка параметров в конце исходной строки
console.log("lxy".endsWith('y'));//true
console.log("lxy".endsWith('x'));//false