前端基础1-6 :es6

server/2024/10/21 23:14:59/

点击跳转,详细查看es6

const常量

const LIMIT = 10;
const OBJ_MAP = {a: 'A',A: 'a'
}

1. 不允许重复声明赋值

    var arg1 = 'a'arg1 = 'aa'// 常量 - ES5Object.defineProperty(window, 'arg2', {value: 'aaa',writable: false})// ES6const arg2 = 'aaa'

2. 块级作用域

    if (true) {console.log(arg1)var arg1 = 'aa'}console.log(arg1)if (true) {const arg1 = 'aa'}// dead zone => 先声明赋值 再使用

3. const 和 let

    // 会被改变的对象,到底用const还是let?const obj = {teacher: 'aa',date: '20240530'}obj.teacher = ''const obj2 = obj// 1. 栈 + 2. 堆// 能用const的地方,都用const// 面试:如何对一个对象进行常量化?// 破局 - Object.freeze()Object.freeze(obj)// 追问:只能冻结根层?const obj = {teacher: 'aa',date: '20240530',course: {course1: 'basic',course2: 'trial'}}function deepFreeze(obj) {Object.freeze(obj)(Object.keys(obj) || []).forEach(key => {if (typeof obj[key] === 'object') {deepFreeze(obj[key])}})}

deconstruction 解构 - 解开对象结构

    const obj = {teacher: 'yy',course: 'es'}const {teacher,course} = obj;const arr = [1, 2, 3, 4, 5]const [a, b, c, d, e] = arr;let a = 1;let b = 2;[b, a] = [a, b]

arrow_function 箭头函数

    // 传统函数function test(a, b) {return a + b;}const test = function(a, b) {return a + b;}const test = (a, b) => {return a + b;}const test = (a, b) => a + b;const test = x => {}

上下文

    const obj2 = {teacher: 'aa',course: 'es',table: ['black', 'red'],getTeacher: function() {return this.teacher;},getTable: () => {// 不存在独立上下文}}

class 助力js更加具有面向对象的形式 - 类

    // 传统类型的对象 - functionfunction Course(teacher, course) {this.teacher = teacherthis.course = course}Course.prototype.getCourse = function() {return `teacher is ${this.teacher}`;}const course = new Course('aa', 'ES')const course1 = new Course('aa1', 'ES2')// ES6class Course {constructor(teacher, course) {this.teacher = teacherthis.course = course}getTeacher() {return ''}static getCourse() {}}const course = new Course('aa', 'ES')course.getTeacher()Course.getCourse()

追问

class 的类型是什么?

Function => Object => null

class的prototype

    Course.prototype

class 函数对象的属性

    course.hasOwnProperty('teacher')
// 1. 如何建立只读变量class Course {constructor(teacher, course) {this._teacher = teacherlet _course = 'es'this.getCourse = () => {return _course}}// get teacher() {//     return this._teacher// }}class Course {#course = 'es6'set course(val) {if (val) {this.#course = val}}}// 3. 封装核心 - 适配器模式// {//     name: {//         value: 'lodash',//         tag: 124,//         name: 'es6'//     }// }class utils {constructor(core) {this._main = corethis._name = 'myName'}get name() {return {...this._main.name,name: `${this._name}`}}set name(val) {this._name = val}}

http://www.ppmy.cn/server/47334.html

相关文章

Github生成SSH密钥,使用SSH进行连接

目录 一、生成新的SSH密钥 二、添加新的SSH密钥 三、测试SSH连接 四、SSH密钥密码 五、创建新仓库并推送到github 说明 使用 SSH URL 将 git clone、git fetch、git pull 或 git push 执行到远程存储库时, 须在计算机上生成 SSH 密钥对,并将公钥添加到…

c# - - - winform 右下角气球提示通知

c# - - - winform 右下角气球提示通知 winform 右下角气球提示通知 1.1 winform 右下角气球提示通知 在工具箱中点击 NotifyIcon 控件,拖动到 Form1 窗体上添加这个控件。 在“提示”按钮的点击事件中写气球提示通知内容。 public partial class Form1 : Form {…

【pytorch】数据转换/增强后保存

数据转换 from PIL import Image from pathlib import Path import matplotlib.pyplot as plt import numpy as npimport torch import torchvision.transforms as Tplt.rcParams["savefig.bbox"] = tight # orig_im

攻防世界maze做法(迷宫题)

首先查壳64bit,直接丢进ida64中进行反编译就完事儿了,然后直接进入main函数打注释分析首先,题目已经提示了这是个迷宫题,我们抓住做迷宫题的两个要点,一找玩法,二找地图, 玩法在主函数中&#…

初识C++ · 模拟实现stack和Queue

目录 前言: 1 Stack 1.1 双端队列 2 Queue 前言: 经历了list三个自定义类型的洗礼,来个简单的放松放松,即栈和队列: 文档记录的,栈和队列是一种容器适配器,它们不属于stl,但是它…

k8s_设置dns

配置k8s dns 在 Kubernetes 集群中,CoreDNS 是默认的 DNS 服务器,它负责处理集群内所有的 DNS 请求。 kubectl edit cm coredns -n kube-system (此命令修改coredns 配置) kubectl describe cm coredns -n kube-system(此命令查看coredns 配置) 出现类似以下结果 apiVers…

JVM思维导图

帮助我们快速整理和总结JVM相关知识,有结构化认识和整体的思维模型 JVM相关详细知识和面试题

为什么Facebook Marketplace无法使用?如何解决?

Facebook Marketplace是一个允许用户买卖商品的平台,由于其在Facebook内的便捷性,它逐渐成为了一个受欢迎的在线交易市场。然而,做Facebook跨境电商,很多人会面临的情况就是无法使用Facebook Marketplace。这到底是什么原因&#…