二十三、ES10 新特性

(一)对象方法扩展 —— Object.fromEntries()

  • 创建一个对象,方法参数可以是一个二维数组,也可以是一个 Map 对象

1.二维数组

const res1 = Object.fromEntries([
  ["name", "ikuko"],
  ["skill", "前端, PHP"],
]);
console.log(res1);
// {name: 'ikuko', skill: '前端, PHP'}

郁子大约 1 分钟笔记ECMAScript尚硅谷李强
二十四、ES11 新特性

(一)私有属性

  • 变量名前加 #
class Person {
  //  公有属性
  name;

  // 私有属性
  #age;
  #weight;

  // 构造方法
  constructor(name, age, weight) {
    this.name = name;
    this.#age = age;
    this.#weight = weight;
  }

  // 类内部调用
  intro() {
    console.log(girl.name);
    console.log(girl.#age);
    console.log(girl.#weight);
  }
}

//  实例化
const girl = new Person("ikuko", 24, "62kg");
console.log(girl);
// Person {name: 'ikuko', #age: 24, #weight: '62kg'}

// 类外部调用:无法访问私有属性
console.log(girl.name);
// ikuko
console.log(girl.#age);
// Private field '#age' must be declared in an enclosing class

// 类内部调用:可以访问
girl.intro();
// ikuko
// 24
// 62kg

郁子大约 3 分钟笔记ECMAScript尚硅谷李强
一、基本概念

(一)简介

1.概述

  • Nginx (engine x)是一个高性能的 HTTP 和反向代理 web 服务器
  • 同时也提供了 IMAP/POP3/SMTP 服务
  • Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点(俄文: Рамблер )开发的
  • 其特点是占有内存少,并发能力强,事实上 Nginx 的并发能力在同类型的网页服务器中表现较好
  • 中国大陆使用 Nginx 网站用户有:百度、京东、新浪、网易、腾讯、淘宝等
  • http://nginx.org/en/download.html

郁子大约 5 分钟笔记Nginx尚硅谷
二、安装(Linux)

(一)使用远程连接工具连接 Linux 操作系统

(二)安装 Nginx 相关依赖包

  • pcre 8.37
  • openssl 1.0.1
  • zlib 1.2.8
  • Nginx 1.11.1

1.一键安装上面四个依赖

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

郁子小于 1 分钟笔记Nginx尚硅谷
三、常用命令

(一)使用 Nginx 操作命令的前提条件

  • 必须进入 Nginx 的目录: /usr/local/nginx/sbin
cd /usr/local/nginx/sbin

郁子小于 1 分钟笔记Nginx尚硅谷
四、配置文件

(一)位置

  • /usr/local/nginx/conf/nginx.conf
  • 由三部分组成
cd /usr/local/nginx/
ls
cd /conf
vim nginx.conf

郁子大约 3 分钟笔记Nginx尚硅谷
五、配置实例

(一)反向代理实例一

1. 实现效果

  • 打开浏览器,输入地址 www.123.com
  • 跳转到 Linux 系统的 Tomcat 主页面

2. 准备工作

  • Linux 系统安装 Tomcat ,使用默认端口 8080
    • Tomcat 安装文件放到 Linux 系统中,解压
    • 进入 Tomcatbin 目录中, ./startup.sh 启动 Tomcat 服务器
  • 对外开放访问的端口

郁子大约 6 分钟笔记Nginx尚硅谷
八、Rest参数
  • ES6 引入 rest 参数,用于获取函数的实参
  • 用来代替 arguments

(一)ES5 获取实参的方式

  • 返回一个对象
function date() {
  console.log(arguments);
}
date("a", "b", "c");
// Arguments(3) ['a', 'b', 'c', callee: ƒ, Symbol(Symbol.iterator): ƒ]

郁子小于 1 分钟笔记ECMAScript尚硅谷李强
九、扩展运算符
  • 扩展运算符 ... 能将数组转换为逗号分隔的参数序列

(一)... 运算符

  • rest 参数是放在函数声明时 形参 的位置
  • ... 扩展运算符是放在调用函数时 实参 的位置
// 声明一个数组
const comic = ["恶役", "恋爱", "大女主"];
// 使用 ... 转换为 '恶役', '恋爱', '大女主'
// 声明一个函数
function cartoon() {
  console.log(arguments);
}
cartoon(comic);
// Arguments [Array(3), callee: ƒ, Symbol(Symbol.iterator): ƒ]

cartoon(...comic);
// 相当于cartoon('恶役', '恋爱', '大女主');
// Arguments(3) ['恶役', '恋爱', '大女主', callee: ƒ, Symbol(Symbol.iterator): ƒ]

郁子大约 1 分钟笔记ECMAScript尚硅谷李强
十、Symbol数据类型

(一)Symbol 简介

  • JS 的第七种数据类型,表示独一无二的值
    • Symbol 值唯一,用于解决命名冲突的问题
    • Symbol 值不能与其他数据进行运算【四则运算、字符串拼接、大小比较等】
    • Symbol 定义的对象属性不能使用 for...in 循环遍历,但是可以使用 Reflect.ownKeys 来获取对象的所有键名
  • JS 所有数据类型:USONB => you are so nubility
    • U: undefined
    • S: stringsymbol
    • O: object
    • N: nullnumber
    • B: boolean

郁子大约 4 分钟笔记ECMAScript尚硅谷李强
2
3
4
5
...
10