JS----ES6

ES6

箭头函数

箭头函数和普通函数的区别

  1. 外形不同
    箭头函数使用 => 定义。
// 普通函数
function demo(){
  ...
}

// 箭头函数
let demo = () => {
  ...
}
  1. 箭头函数都是匿名函数
    普通函数可以有匿名函数,也可以有具名函数;箭头函数只有匿名函数。
// 具名函数
function demo(){
  ...
}

// 匿名函数
let func = function(){
  ...
}

// 箭头函数
let demo = () => {
  ...
}
  1. 箭头函数不可以用于构造函数,不能使用new
  2. 箭头函数中的this指向不同
    ①. 箭头函数本身不创建this
    在普通函数中,this总是指向调用它的对象,如果用作构造函数,this指向创建的对象实例。
    箭头函数本身没有this,但它在声明时可以捕获其所在上下文的this供自己使用
let success = "捕获成功"
let func = () => {
  console.log(this.success)
}

func()
// 打印:捕获成功

箭头函数在全局作用域声明,所以它捕获全局作用域中的this,this指向window对象

var name = "message1";
function wrap(){
  this.name="message2";
  let func=() => {
    console.log(this.name);
  }
  func();
}
let en=new wrap();
// 打印:message2

②. 结合call()、apply()方法使用
箭头函数结合call()、apply()方法调用一个函数时,只传入一个参数对this没有影响。

let obj2 = {
    a: 10,
    b: function(n) {
        let f = (n) => n + this.a;
        return f(n);
    },
    c: function(n) {
        let f = (n) => n + this.a;
        let m = {
            a: 20
        };
        return f.call(m,n);
    }
    
};
console.log(obj2.b(1));    // 11
console.log(obj2.c(1));    // 11

5. 箭头函数的 this 永远指向其上下文的 this ,任何方法都改变不了其指向,如 call() , bind() , apply()

let、const、var的区别

  1. 块级作用域:块级作用域用{}包括,let和const具有块级作用域,var不具有。块级作用域解决了ES5的存在的两个问题:
    • 内层变量可能会覆盖外层变量
    • 用来计数的循环变量泄露为全局变量
  2. 变量提升:变量提升就是把变量的声明提升到作用域的最上面去,而不会把赋值也提升上来。
  3. var声明的变量为全局变量,并会将该变量添加为全局对象的属性。let和const不会
  4. 初始值设置:var和let可以不设置初始值,const必须设置初始值
  5. let创建的变量可以修改指针指向(可重新赋值)

const对象可以修改吗?

const保证的并不是值不变,而是const变量指向的内存地址不变,对于基本数据类型,其值就永远保存在变量指向的那个内存地址,因此等同于常量。但对于引用类型的数据(对象和数组),变量指向数据的内存地址,const只能保证这个指针是固定不变的,至于它指向的数据结构是不是可变的,就完全不能控制了。

为什么箭头函数不能作为构造函数

构造函数需要this这个对象,用于接收参来的参数,以及在构造函数的最后将这个this返回。而箭头函数没有this,所以不能作为构造函数。

如果new一个箭头函数会怎么样

因为箭头函数相对于普通函数并没有自己的this指向,而构造函数需要由this,所以箭头函数不能new。
new操作符实现的步骤如下

  1. 创建一个对象
  2. 将构造函数的作用域赋值给新对象(也就是将新对象的__proto__属性指向构造函数的prototype属性)
  3. 构造函数中的this指向新对象(也就是为这个新对象添加属性和方法)
  4. 返回新的对象

扩展运算符(…)

扩展运算符对对象实例的拷贝属于浅拷贝

数组运算符可以将数组用逗号分割为一个参数序列,且每次只能打开一层数组。

console.log(...[1, 2, 3]);  // 1 2 3
console.log(...[1, [2, 3, 4], 5]);   // 1 [ 2, 3, 4 ] 5
console.log(...[1, ...[2, 3, 4], 5]);   // 1 2 3 4 5

function add(x, y) {
  return x + y;
}
const numbers = [1, 2];
add(...numbers) // 3

// 复制数组
const arr1 = [1, 2, 3];
const arr2 = [...arr1];

对对象与数组的结构的理解

数组的结构

在解构数组时,以元素的位置为匹配条件来提取想要的数据:

const [a, b, c] = [1, 2, 3]

还可以使用空占位的方式,实现对数组中某几个元素的精准提取:

const [a, , c] = [1, 2, 3]
// a: 1, c: 3

对象的解构

const stu = {
  name: 'Bob',
  age: 24
}

const { name, age } = stu

提取高度嵌套的对象里的指定属性

const school = {
   classes: {
      stu: {
         name: 'Bob',
         age: 24,
      }
   }
}

可以在解构出来的变量名右侧,通过冒号+{目标属性名}这种形式,进一步解构它,一直解构到拿到目标数据为止

const { classes: { stu: { name } } } = school
console.log(name);   // Bob
### 回答1: cesium-popup-es6是一个基于ES6语法编写的Cesium.js的弹窗组件,用于在Cesium地图上显示自定义的弹窗内容。 这个组件主要包含了以下几个部分: 1. Popup类:这是弹窗的主要类,负责创建和管理弹窗的各种属性和方法。通过使用Popup类,可以很方便地在地图上创建弹窗,并设置弹窗的位置、大小、内容等。 2. 事件监听:cesium-popup-es6还提供了一些事件监听的方法,可以在弹窗的打开、关闭以及其他交互操作时进行相应的处理。例如,可以监听鼠标点击事件来关闭弹窗,或者监听地图的移动事件来更新弹窗的位置。 3. 样式定制:该组件允许用户通过设置自定义的CSS样式来定制弹窗的外观和风格。这使得用户可以根据自己的需要来修改弹窗的颜色、字体、边框等样式属性,从而实现个性化的弹窗显示效果。 4. 兼容性:cesium-popup-es6能够很好地与Cesium.js的其他功能和插件进行集成,同时对不同的浏览器和设备也具备良好的兼容性。这意味着无论是在PC端还是移动端,无论是在Chrome还是在Safari等浏览器上,cesium-popup-es6都能够正常运行。 总的来说,cesium-popup-es6文档提供了关于如何使用和定制这个弹窗组件的详细说明,方便开发者在Cesium.js地图项目中加入自定义的弹窗功能。无论是展示地理信息、交互操作还是其他相关需求,cesium-popup-es6都能够帮助开发者实现一个易于使用和美观的弹窗效果。 ### 回答2: cesium-popup-es6 是一个基于 Cesium.js 的弹出窗口组件,该组件使用 ES6 编写。它为用户提供了在 Cesium 场景中高度可定制的弹出窗口功能。 组件的文档详细介绍了 cesium-popup-es6 的使用方法和各个配置项的说明。首先,你需要通过 npm 或者其他构建工具下载并引入该组件。然后,在你的代码中创建一个 Popup 实例并传入相应的参数,包括弹出窗口的内容、位置、大小、样式等。 文档中还介绍了组件的主要功能,包括弹出窗口显示和隐藏的方法,以及与 Cesium 场景的交互。你可以通过调用 show 方法来显示弹出窗口,通过调用 hide 方法来隐藏弹出窗口。组件还提供了许多配置项,例如你可以自定义弹出窗口的样式、位置以及与其它元素的交互等。 文档中也提供了丰富的示例代码,以帮助用户更好地理解和使用 cesium-popup-es6 组件。这些示例代码覆盖了各种场景,包括在固定位置显示弹出窗口、在鼠标点击位置显示弹出窗口等。 总的来说,cesium-popup-es6 文档提供了详细的使用说明和示例代码,帮助用户了解和使用该弹出窗口组件。用户可以根据自己的需求进行定制,实现丰富多样的弹出窗口效果。 ### 回答3: cesium-popup-es6 是一个基于ES6语法的Cesium.js库的文档。 该文档主要用于指导开发者在使用cesium-popup-es6库时的操作步骤和相关功能的使用方法。 文档的目录结构清晰明了,按照功能模块进行分类,方便开发者快速找到需要的信息。 在文档的开头部分,首先介绍了cesium-popup-es6的基本概述,包括其功能特点和适用场景,帮助开发者了解该库的作用和优势。 接下来,文档详细介绍了cesium-popup-es6的安装和配置步骤。通过简明的指导,开发者可以快速将该库引入到自己的项目中,并进行相应的配置。 然后,文档详细说明了cesium-popup-es6库的各种功能和使用方法。比如,如何创建和定位弹出窗口、如何设置窗口内容和样式、如何捕获窗口的事件等等。每一项功能都给出了具体的代码示例和详细的说明,方便开发者理解和应用。 文档还提供了一些常见问题的解答和一些建议的最佳实践,帮助开发者在使用cesium-popup-es6库时避免一些常见的问题和错误。 最后,文档附带了一些附录,包括cesium-popup-es6的API参考和一些相关的资源链接,方便开发者查阅进一步的信息和深入理解该库。 总之,cesium-popup-es6 文档是一份详尽而全面的文档,对于开发者学习和使用cesium-popup-es6库非常有帮助,可以提高开发效率并简化开发过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值