ES6尚硅谷学习笔记

尚硅谷Elasticsearch7学习笔记 结构化数据非结构化数据半结构化数据。 阅读详情

let

特性

  • 变量不能重复声明
  • 块级作用域
  • 不存在变量提升
  • 不影响作用域链。?

const

  • 声明时必须赋初始值。
  • 一般大写。
  • 不能修改
  • 块级作用域
  • 对于数组和对象的修改不算做对常量的修改。因为指向的地址并没有改变。

变量的解构赋值

  • 数组
  • 对象

模板字符串

  • 声明:``反引号

    • 内容中可以出现换行符

    • 变量拼接

      let a = '魏翔';
      let b = `$(a)是个演员`;   // b === 魏翔是个演员
      

对象的简化写法

  • 允许在大括号里面直接写入变量和函数,作为对象的属性和方法。

    // 原来
    const school = {
    	name: name,   // 变量名相同就可以不用写两次
    	change: change,
    	improve: function(){}
    }
    
    // 现在
    const school = {
    	name,
    	change,
    	improve(){}   // 函数的书写简化
    }
    

箭头函数以及声明特点

  • // 原来
    let fn = function () {}
    // 现在
    let fn = () => {}
    
  • 特性:

    • this是静态的,始终指向函数声明时所在作用域下的This值
    • 不能作为构造函数实例化对象
    • 不能使用arguments变量
    • 简写
      • 省略小括号,当有且只有一个形参
      • 省略花括号{},当代码体只有一条语句,此时return也要省略掉
  • 应用场景

    • // 返回偶数
      const arr = [0,1,2,3,4];
      const result = arr.filter(function (item) {
      	// return item % 2 === 0 ? true : false  
      })
      // 箭头函数写法
      const result = arr.filter(item => item % 2 === 0)
      
    • 箭头函数适合与this无关的回调,定时器,数组的方法回调;

    • 箭头函数不适合于this有关的回调。事件回调,对象的方法

函数参数默认值设置

  • 形参初始值 具有默认值的参数,有默认值的一般在最后。(感觉就是解构赋值相关)
  • 与解构赋值相结合,函数传参时可以直接{name,age}写到传参的小括号里,函数里面就可以直接用

rest参数

  • 用于获取函数的实参,用来代替arguments

    // 原来
    function date(){
    	console.log(arguments);
    }
    date('1','2','3');
    //这个会输出obj{}
    
    // 现在
    function date(...args) {
    	console.log(args);
    }
    date('1','2','3');
    // 这个会输出数组[]
    ...args指的就是rest参数,必须放在最后
    

扩展运算符

  • … 将数组转换为逗号分隔的参数序列

    const tf = ['1','2','3'];
    function fn(){
    	console.log(arguments);  
    }
    fn(...tf); // 输出三个值
    fn(tf);  // 输出一个值
    
  • 应用

    • 数组合并

      const nums1 = [1,2];
      const nums2 = [3,4];
      const nums3 = nums1.concat(nums2);  //  [1, 2, 3, 4]
      const nums4 = [...nums1, ...nums2];  //  [1, 2, 3, 4]
      console.log(nums3);
      console.log(nums4);
      
    • 数组克隆

      const nums1 = [1,2];
      const nums2 = [...nums1];  // 浅拷贝  [1,2]
      console.log(nums2);
      
    • 将伪数组转为真正的数组

      ...伪数组名称
      

symbol

  • 特点

    • 第七种数据类型,类似于字符串,值唯一
    • 不能与其他数据进行运算
    • 使用symbol定义的对象属性不能使用for in 循环遍历,但是可以使用Reflect.ownKeys来获取对象的所有键名
    // 创建symbol
    const s1 = Symbol();
    const s2 = Symbol('zhangsan');
    const s3 = Symbol('zhangsan');
    console.log(s2 === s3);  // false
    const s4 = Symbol.for('zhangsan');
    const s5 = Symbol.for('zhangsan');
    console.log(s4 === s5);  // true
    
  • 不能与数据进行运算,也不能自己+自己

  • 7种数据类型:number string boolean object null undefined symbol

  • 应用场景:给对象添加属性和方法 (可能重点是比较安全?能成功添加进去?)

    • // 方法一
      let game = {
      	name: '俄罗斯方块',
      	up: Symbol(),
      	down: Symbol()
      };
      let methods = {
      	up: Symbol(),
      	down: Symbol()
      };
      game[methods.up] = function(){
      	console.log('11111');
      }
      game[methods.down] = function(){
      	console.log('22222');
      }
      console.log(game);  // {name: '俄罗斯方块', up: Symbol(), down: Symbol(), Symbol(): ƒ, Symbol(): ƒ}
      // 虽然本来就有,但是安全地添加进去了
      
      // 方法二
      let game1 = {
      	name: '狼人杀',
      	[Symbol('say')]: function(){console.log('发言')},
      	[Symbol('paly')]: function(){console.log('玩耍')}
      }
      console.log(game1);  // {name: '狼人杀', Symbol(say): ƒ, Symbol(paly): ƒ}
      
  • symbol内置值 11个 将symbol.xxx这个整体作为对象的属性,是为了扩展对象的属性。

迭代器Iterator

  • 接口,任何数据结构只要部署了iterator接口,就可以用for of来遍历。

  • iterator接口就是对象的一种属性,这个属性的名字是symbol.iterator

  • for in和for of的区别:for in保存的是键,比如数组序号0123;for of保存的是值,比如nums[1]nums[2]

  • 具备iterator接口的:Array Arguments Set Map String TypedArray NodeList

  • 原理:

    • 创建一个指针对象,指向当前数据结构的起始位置
    • 第一次调用next方法,指针自动指向第一个成员
    • 不断调用next,指针不断后移,直至指向最后一个
    • 每调用一次next方法返回一个包含value和done属性的对象,done代表遍历是否已经完成
  • 应用

    • 需要自定义遍历数据的时候,需要用到迭代器

      // 相当于自己去创建索引,自己写接口?
      const banji = {
      	name: '终极一班',
      	stus: [
      		'xiaoming',
      		'xiaolan',
      		'xiaochun',
      		'king'
      	],
      	[Symbol.iterator]() {
      		let index = 0;
      		let _this = this;
      		return {
      			next: function () {
      				if (index < _this.stus.length) {
      					const result = {value: _this.stus[index], done: false};
      					index++;
      					return result;
      				} else {
      					return {value: undefined, done: true}
      				}
      			}
      		}
      	}
      }
      for (let x of banji) {
      	console.log(x);
      }
      

生成器

  • 一种特殊的函数,常用于异步编程。function* ()

  • 里面有迭代器,可以用next调用。yield相当于分隔符。

  • 第二次调用next时传参,这个参数将会作为第一个yield语句的返回值。

  • 异步编程。主要是IO相关的,文件操作,网络操作(Ajax,request),数据库操作

  • 需求:1s后控制台输出111 再过2s后222 再过3s后333

    setTimeout(() => {
    	console.log(111);
    	setTimeout(() => {
    		console.log(222);
    		setTimeout(() => {
    			console.log(333);
    		}, 3000)
    	}, 2000)
    }, 1000);
    // 可以实现,但是冗余。回调地狱。
    
    function one() {
    	setTimeout(() => {
    		console.log(111);
    	}, 1000)
    }
    function two() {
    	setTimeout(() => {
    		console.log(222);
    	}, 2000)
    }
    function three() {
    	setTimeout(() => {
    		console.log(333);
    	}, 3000)
    }
    one();
    two();
    three();
    // 这样写是顺序执行,启动了三个独立的定时器,是在1,2,3秒打印,不能实现功能
    
    function one() {
    	setTimeout(() => {
    		console.log(111);
    		iterator.next();
    	}, 1000)
    }
    function two() {
    	setTimeout(() => {
    		console.log(222);
    		iterator.next();
    	}, 2000)
    }
    function three() {
    	setTimeout(() => {
    		console.log(333);
    		iterator.next();
    	}, 3000)
    }
    function * gen() {
    	yield one();
    	yield two();
    	yield three();
    }
    let iterator = gen();
    iterator.next();
    // 这段代码使用了生成器函数,可以实现功能,且缩进是有限的,不会产生回调地狱。
    
  • 需求: 模拟获取:先获取用户数据,然后订单数据,然后商品数据

    function getUsers() {
    	setTimeout(() => {
    		let data = '用户数据';
    		iterator.next(data);
    	}, 1000)
    }
    function getOrders() {
    	setTimeout(() => {
    		let data = '订单数据';
    		iterator.next(data);
    	}, 1000)
    }
    function getGoods() {
    	setTimeout(() => {
    		let data = '商品数据';
    		iterator.next(data);
    	}, 1000)
    }
    
    // 回调函数
    function * gen() => {
    	let users = yield getUsers();
    	console.log(users);
    	let orders = yield getOrders();
    	console.log(orders);
    	let goods = yield getGoods();
    	console.log(goods)
    }
    let iterator = gen();
    iterator.next();
    

Promise

  • 异步编程。是一个构造函数,可以用来封装异步操作并获取她成功或者失败的结果。

  • 示例

    const p = new Promise(function (resolve, reject) {
    	setTimeout(function(){
    		let data = '数据库中的数据';
    		resolve(data);
    		let err = '获取失败';
    		reject(err);
    	}, 1000);
    });
    p.then(function(value){
    	console.log(value);  // 如果获取成功,那么调用这里
    }, function(reason){
    	console.log(reason);  // 如果失败,调用这里
    })
    
  • promise读取文件

    // 1. 引入fs模块
    const fs = require('fs');
    
    // 2. 调用方法读取文件
    // fs.readFile('./files/待读取文件1.md', (err, data) => {
    //     if(err) {
    //         throw err;
    //     }
    //     console.log(data.toString());
    // })
    
    // 3.使用promise封装
    const p = new Promise(function (resolve, reject) {
        fs.readFile('./files/待读取文件1.md', (err, data) => {
            if (err) reject(err);   // 如果失败
            resolve(data);
        });
    });
    p.then(function (value){
        console.log(value.toString());
    }, function (reason){
        console.log('读取失败!!!');
    });
    
    改为箭头函数
    p.then(value => {
        console.log(value.toString());
    }, reason => {
        console.log('读取失败!!!');
    });
    
  • promise封装Ajax请求

    
    
  • promise的then方法

    • then指定回调,成功执行value,失败执行reason

    • then的返回结果是promise对象,这个对象的状态由回调函数决定。如果返回结果是非promise结果(比如return ‘123’),那么状态状态为成功,且返回值为对象的成功值;如果是promise对象,那么里面的状态决定外面的状态;如果抛出错误,,,

    • 可以链式调用,可以杜绝回调地狱

    • 目前我对于回调地狱的理解就是不断缩进。

    • 链式调用

      // 读取多个文件
      const fs = require('fs');
      
      // fs.readFile('./files/待读取文件1.md', (err, data1) => {
      //     fs.readFile('./files/待读取文件2.md', (err, data2) => {
      //         result = data1 + '\n' + data2;
      //         console.log(result);
      //     })
      // })
      
      // promise
      const p = new Promise((resolve, reject) => {
          fs.readFile('./files/待读取文件1.md', (err, data) => {
              resolve(data);
          })
      })
      
      p.then(value => {
          return new Promise((resolve, reject) => {
              fs.readFile('./files/待读取文件2.md', (err, data) => {
                  resolve([value, data]);
              })
          })
      }).then(value => {
          return new Promise((resolve, reject) => {
              fs.readFile('./files/待读取文件3.md', (err, data) => {
                  value.push(data);
                  resolve(value);
              })
          })
      }).then(value => {
          console.log(value.join(''));
      })
      
  • promise的catch方法

    • p.then(value => {}, reason => {
      	console.log(reason);
      });
      p.catch(reason => {
      	console.warn(reason);
      });
      

set

  • let s = new Set(); let s2 = new Set([1,2,1,3]); s2 = (1,2,3)可以去重,括号里的参数是可迭代对象

  • s.size add delete has clear()

  • 有迭代器接口,可以for of遍历

  • 示例

    		let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3];
            // 数组去重
            // let setArr = [...new Set(arr)];
            // console.log(setArr);
    
            // 交集
            let arr1 = [1, 4, 5, 5, 6, 11];
            // let result = [...new Set(arr)].filter(item => {
            //     let setArr1 = new Set(arr1);
            //     if (setArr1.has(item)) {
            //         return true;
            //     } else {
            //         return false;
            //     }
            // })
            // let result = [...new Set(arr)].filter(item => new Set(arr1).has(item));  // 简化代码
            
    
            // 并集
            //let result = [...new Set([...arr, ...arr1])];
            
    
            // 差集
            // arr - arr1
            let result = [...new Set(arr)].filter(item => !new Set(arr1).has(item));
            console.log(result);
    

Map

  • 与对象Object的区别:对象的键是字符串,Map的对象可以是任何类型。

  • 有iterator接口,可以用…,可以用for of遍历

  • 		let m = new Map();
            // 添加
            m.set('name', '张三');
            // 删除
            m.delete('name');
            // 获取
            m.get('name');
            // 清空
            m.clear();
            // 遍历
            for of
    

Class

  • 类继承ES6

    class Phone {
    	constructor(brand, price){
    		this.brand = brand;
    		this.price = price;
    	}
    	call(){
    		console.log('我可以打电话');
    	}
    }
    
    class smartPhone extends Phone {
    	constructor(brand, price, color, size) {
    		super(brand, price);
    		this.color = color;
    		this.size = size;
    	}
    	
    	photo(){
    		console.log('我可以拍照片');
    	}
    	
    	playGame(){
    		console.log('我可以玩游戏');
    	}
    }
    xiaomi = new smartPhone('xioami', '2999', 'black', '4.4');
    console.log(xiaomi);
    
    // 子类可以对父类重写,相同的方法子类写了,那么调用子类时,会覆盖掉子类
    
  • get和set

数值扩展

  • Number.EPSILON 最小精度
  • 二进制0b八进制0o十六进制0x
  • Number.isFinite是否有限
  • Number.isNaN
  • Number.parseInt Number.parseFloat
  • Number.isInteger
  • Math.trunc抹掉小数
  • Math.sign判断正负

对象方法扩展

模块化

  • export
  • import
  • babel

ES7

async await

ES8对象方法扩展

最全的es6笔记看了不后悔!!!! 大牛讲师讲课总结,详细讲述常用ES6标签及语法,会让你少走很多弯路!! 立即下载

相关推荐

es6整理笔记2018.10

- 扩展运算符 - 扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。 ``` console.log(...[1, 2, 3]) // 1 2 3 console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5 [...document.querySelectorAll('div')] // [, , ] ```

尚硅谷---ES6

尚硅谷ES6同步笔记。万字长文,精心笔记,方便您预习复习~

Father_Of_Soft的博客 745

遥感图像处理实战:DOTA数据集旋转框转YOLO格式全流程解析(附代码)

本文详细解析了将DOTA遥感数据集的旋转框标注转换为YOLO格式的全流程。针对遥感图像中物体朝向任意性的特点,文章重点阐述了将旋转框转换为外接水平框的数学原理与代码实现,并提供了批量转换脚本和可视化验证方法,帮助开发者高效处理数据,为基于YOLO的遥感目标检测项目奠定基础。

weixin_29082143的博客 398

【ES6】尚硅谷学习总结

ES 的全称是 ECMAScript ,是JavaScript语言的增强;它是由 Ecma国际 通过 ECMA-262标准化的脚本程序设计语言;ES6 实际上是一个泛指,泛指 ES2015 及后续的版本。

老陈的博客 503

C#与工业设备的OPC DA/UA协议通信开发

摘要:本文介绍了C#与工业设备通信的两种OPC协议(OPC DA和OPC UA)的实现方法。OPC DA基于COM/DCOM技术,适用于Windows平台,提供实时数据采集功能;OPC UA则支持跨平台通信,具备更强的安全性和数据建模能力。文章详细展示了如何使用C#通过OPC DA和OPC UA协议读取、写入数据,并提供了代码示例,包括安装相关库、建立连接、订阅数据变化等关键步骤。这些方法为工业自动化中的设备监控与控制提供了实用解决方案。(149字)

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1262

Jetson-nano 编译实时内核并烧录

前言 之前一篇文章介绍了正常的烧录过程,使用的是默认内核,实际工作中需要对内核打补丁升级为实时内核,并对其重编译。 一、准备内容 官网大法好 官方内核下载链接 官方交叉编译器下载链接 官方文档 ubuntu主机一台 根据官网选择下载对应的文件, 1、L4TDriver Package (BSP) source jetson内核文件。 2、官方交叉编译器 因为我们不是在jetson上直接编译,而jetson是arm平台,所以要进行交叉编译。 二、使用步骤 1.解压 内核 tar -xjf public_s

ldl371122的博客 3288

尚硅谷Web前端ES6教程详细笔记,涵盖ES6-ES11

尚硅谷Web前端ES6教程详细笔记,涵盖ES6-ES11

enjoy_learning的博客 1389

1.2 重叠因子:双重指数移动平均(Double Exponential Moving Average, DEMA)概念与Python实战

双重指数移动平均(Double Exponential Moving Average, DEMA)是一种改进的移动平均线指标,由Patrick Mulloy在1994年开发。相比传统的指数移动平均线(EMA),DEMA通过减少滞后性来提供更快的市场反应。它通过两次计算EMA并进行特殊组合来实现这一目标,可以在保持平滑性的同时减少滞后。

Kewin的博客 2169

尚硅谷es6新特性笔记

尚硅谷es6新特性的简单总结

weixin_57599261的博客 1538

【制作100个Unity游戏之36】用unity从零开始实现类《开心消消乐》的三消类消除解压小游戏

Unity甜品消除游戏开发摘要 本文介绍了使用Unity开发甜品消除游戏的核心实现步骤: 冰块阵列生成 通过GlobalDef定义全局参数(9行7列网格) IceSpawner脚本动态生成网格化冰块阵列 添加Resolution脚本实现多分辨率适配 随机水果生成 创建FruitSpawner作为水果容器 FruitItem脚本管理水果属性(行列索引、类型) 支持动态创建水果精灵并设置位置 关键技术点 使用Instantiate动态生成预制体 通过localPosition精确控制网格布局 分辨率适配算法保持

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1291

QEMU源码全解析7 —— QEMU主函数

QEMU源码全解析7 —— QEMU主函数

phmatthaus的专栏 1293

ES6学习笔记

这是我在学习ES6时候的笔记,介绍了ES6中的一些变量相关:let、const、解构对象赋值;Symbol:函数创建Symbol、对象方法创建Symbol、Symbol的使用以及Symbol的内置属性;箭头函数的相关介绍与使用、函数形参赋初值、rest、扩展运算符[...]、迭代器、面向对象编程OOP、面向过程编程POP、ES6中的类和对象:创建类,类的继承、extend、super等;Promise的介绍与使用

hello_helloworld的博客 326

超声相控阵合成孔径成像FPGA设计介绍

1.仿真预览 2.理论分析 系统的基本结构如下所示: 以上是实际中完整的结构,系统中会涉及到两块板子中的时钟,这个就是设计一个时钟采样同步的问题,即所谓的时钟同步。一般这种情况,往往使用内插的方式来解决。这是由于,在实际中,超生波接收到的信号是由本身系统发送出去反射回来得到的,因此从另外一方面将,其是同步的。但是在接收的时候通过内插的方法解决其中的延迟问题。 根据论文中的介绍,整个系统分为如下几个部分: ·模拟发送信号,这个部分由MATLAB产生测试数据并量...

FPGA/MATLAB学习教程/源码/项目合作开发 2069

ES6 及ES6 至 ES11 的新特性 尚硅谷 学习笔记

这里写目录标题一 ECMAScript相关介绍什么是ECMAScript版本特性概述二 ES61 为什么学习ES62 ES6 let 关键字(1)变量不能重复声明(2)块级作用域(3)不存在变量提升(4) 不影响作用域链例子3 ES6 const常量(不可修改) 关键字4 ES6 变量的结构赋值数组的解构对象的解构5 ES6 模板字符串6 ES6 简化对象写法7 ES6 箭头函数(1)箭头函数的this是静态的 this始终指向函数声明时所在作用域下的this的值![在这里插入图片描述](https://i

weixin_43691773的博客 939

双像素传感器的AI计算摄影实战:单目深度估计与图像去模糊的融合创新

本文介绍了双像素传感器技术在计算机视觉中的应用,包括深度估计、图像去模糊和图像重建等任务。双像素传感器通过两个子单元捕捉视差信息,使摄像头能够分析场景的三维结构和运动轨迹。文章以图像去模糊为例,详细展示了从数据准备到模型训练的完整流程,包括构建自定义数据集、设计双像素特征提取模块、训练去模糊模型及推理测试。通过模拟双像素的"双视角"信息融合,该AI算法能有效恢复模糊图像的清晰细节。

know_F0727的博客 256

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

尚硅谷ES6课程李强老师学习笔记

块的范围一般包括 if else while for 等。

m0_48038376的博客 886

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

尚硅谷Web前端ES6教程,涵盖ES6-ES11的学习笔记

尚硅谷Web前端ES6教程,涵盖ES6-ES11的学习笔记

m0_62516225的博客 908

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Elasticsearch - 尚硅谷(6. Elasticsearch 进阶-上)学习笔记

上一篇:(5. Elasticsearch 环境)学习笔记 文章目录1. 核心概念1.1 索引(Index)1.2 类型(Type)1.3 文档(Document)1.4 字段(Field)1.5 映射(Mapping)1.6 分片(Shards)1.7 副本(Replicas)1.8 分配(Allocation)2 系统架构3 分布式集群3.1 单节点集群3.2 故障转移3.3 水平扩容3.4 应对故障4 路由计算 1. 核心概念 1.1 索引(Index) 一个索引就是一个拥有几分相似特征的文档的集合

圆的博客 1272

ES6学习之Symbol基本使用(B站尚硅谷学习笔记)

Symbol介绍 es6引入了一种新的原始数据类型Symbol,表示独一无二的值。 Symbol特点 1)Symbol的值是唯一的,用来解决命名冲突的问题 2)Symbol值不能与其他数据进行运算 3)Symbol定义的对象属性不能使用for …in 循环遍历,但是可以使用Reflect.ownKeys来获取对象的所有键名。 <script> let s1 = Symbol('小屁孩'); let s2 = Symbol('小屁孩') console.log(s1 === s2); &lt

Crush_di的博客 371

尚硅谷JS模块化教程(js模块化精讲含commonjs、AMD、ES6、CMD规范)学习笔记

尚硅谷JS模块化教程(js模块化精讲含commonjs、AMD、ES6、CMD规范)学习笔记

m0_62516225的博客 694

尚硅谷全新JavaWeb教程,企业主流javaweb技术栈【学习笔记】三

上部分代码: https://download.youkuaiyun.com/download/qq_43668996/89066620中部分代码: https://download.youkuaiyun.com/download/qq_43668996/89094028。

qq_43668996的博客 2723

ES6、7学习笔记(尚硅谷)-6-形参默认值的设置

形参默认值,当不传入参数时,默认使用形参中定义的初始值 function Fn(x=0,y=0){ this.x=x this.y=y } let fn1=new Fn() console.log(fn1)

weixin_42349568的博客 106

尚硅谷 ES6-12 笔记

文章目录ES介绍ES6新特性eval函数(ES3函数补充)let关键字const关键字变量解构赋值模板字符串简化对象写法箭头函数函数默认参数REST参数...Spread扩展运算符Symbol 数据类型迭代器生成器PromiseSetMapclass 类数值扩展对象方法的扩展模块化ES7新特性Array的includes**运算符ES8新特性async & await对象方法的扩展ES9新特性REST参数与Spread扩展正则扩展ES10新特性Object.fromEntries方法trimStar

LiuKairui的博客 2201

尚硅谷前端笔记

前端笔记 0. html/css html/css基础笔记 1. html/css进阶 未写 – – 2.js 未写 – – 3.node.js 未写 – – 4.vue 未写 – – 5.react 未写 – – 6.小程序 未写 – – 7.微信公众号 未写 – – 8.uniapp 未写 – – 9.webpack4 未写 目标:全栈。 想要直接是实现一个app,或者是一个软件,不得不需要用到...

qq_46539281的博客 8928

尚硅谷2020微服务分布式电商项目《谷粒商城》学习笔记

尚硅谷2020微服务分布式电商项目《谷粒商城》 项目简介 资料 百度云 链接:https://pan.baidu.com/s/1eGCTi6pLtKbDCwBs-zCOzQ 提取码:1pma 涉及技术 前端技术 Vue 人人开源 / renren-fast-vue renren-fast-vue基于vue、element-ui构建开发,实现renren-fast后台管理前端功能,提供一套更优的前端解决方案。 http://demo.open.renren.io/renren-fas

namehao465的专栏 1万+

尚硅谷ES6笔记

箭头函数适合与 this 无关的回调. 如:定时器,数组的方法回调箭头函数不适合与 this 有关的回调. 如:事件回调,对象的方法···是放在实参传递位置扩展运算符(…):能将数组转换为逗号分隔的参数序列// 相当于fun('AA', 'BB', 'CC')Symbol 属性不会被for...in或等遍历方法枚举出来。因此,可以用 Symbol 定义一些“隐藏”的属性。// 遍历时,hidden 属性不会出现迭代器(lterator)是一种接口,为各种不同的数据结构提供统一的访问机制。

Lemonyuki的博客 684
上一篇: pink旧版JS学习笔记
下一篇: pinkJS学习笔记
presentD
博客等级 码龄8年 40粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值