光之晨曦🌟🌟🌟

vuePress-theme-reco 晨曦    2021 - 2022
光之晨曦🌟🌟🌟 光之晨曦🌟🌟🌟

Choose mode

  • dark
  • auto
  • light
首页
前端开发
  • CSS
  • FrontEnd
  • GraphQL
  • JS基础语法
  • JavaScript
  • TypeScript
  • Vue
  • Webpack
  • 数据结构与算法
  • 浏览器相关
  • 推荐文档
JS指南
  • JS基础相关
  • ECMAScript 6
  • OOP面向对象编程
  • JavaScript设计模式
前端框架
  • Vue相关

    • Vue基础相关
    • Vue官方生态
    • Vue.js的设计核心
性能优化
  • 前端缓存

    • HTTP缓存
    • 数据缓存
    • 离线缓存
    • CDN缓存
  • 优化方案

    • SEO方向的优化方案
    • Webpack的性能优化
    • Canvas性能优化方案
    • 了解常见的Web、App性能优化方案
    • React、Vue框架使用性能优化方案
前端工程化
  • 部署
  • Git
  • Vite
  • WebPack
第三方拓展
时间线
关于
GitHub
author-avatar

晨曦

82

文章

61

标签

首页
前端开发
  • CSS
  • FrontEnd
  • GraphQL
  • JS基础语法
  • JavaScript
  • TypeScript
  • Vue
  • Webpack
  • 数据结构与算法
  • 浏览器相关
  • 推荐文档
JS指南
  • JS基础相关
  • ECMAScript 6
  • OOP面向对象编程
  • JavaScript设计模式
前端框架
  • Vue相关

    • Vue基础相关
    • Vue官方生态
    • Vue.js的设计核心
性能优化
  • 前端缓存

    • HTTP缓存
    • 数据缓存
    • 离线缓存
    • CDN缓存
  • 优化方案

    • SEO方向的优化方案
    • Webpack的性能优化
    • Canvas性能优化方案
    • 了解常见的Web、App性能优化方案
    • React、Vue框架使用性能优化方案
前端工程化
  • 部署
  • Git
  • Vite
  • WebPack
第三方拓展
时间线
关于
GitHub

js表达式

vuePress-theme-reco 晨曦    2021 - 2022

js表达式

晨曦 2022-08-09 16:30:29 JS基础语法

# 数组初始化表达式

数组初始化表达式 是通过一对方括号和其内由逗号隔开的列表构成的。初始化的结果是一个新创建的数组。

# 逗号分隔

数组的元素是 逗号分隔 的表达式的值。

空数组:[] 内留空即表示该数组没有任何元素

拥有两个元素的数组:第一个是 3,第二个是 7。

[1 + 2, 3 + 4]
1

# 嵌套数组

数组初始化表达式中的元素初始化表达式也可以是数组的初始化表达式。也就是说,这些表达式是可以嵌套的。

var matrix = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]
1

# 可省略元素

数组直接量中的列表逗号之间的元素可以省略,这时省略的空位会填充值不存在。

var sparseArray = [1, , , , 5]

// 相当于
// [1, empty x 3, 5]
1
2
3
4

数组直接量的元素列表结尾处可以留下单个逗号,这时并不会创建一个新的值为 undefined 的值。

const arr = [1, 2, 3, ]

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

# 索引赋值

通过数组索引赋值,只会给指定索引所在位置赋值,而其中未赋值的索引位置则表示为空 empty,而非定义为 undefined.

let arr = [0, 1]

arr[10] = 10

console.log(arr);
// [0, 1, empty x 8, 10]

console.log(arr.length);
// 11

ary.filter(x => x === undefined);
// []
1
2
3
4
5
6
7
8
9
10
11
12

# 对象初始化表达式

对象和数组初始化表达式实际上是一个新创建的对象和数组。这些初始化表达式有时称作 对象直接量 和 数组直接量。然而和布尔值直接量不同,它们实际上不是原始表达式,因为它们所包含的成员或者元素都是子表达式。

对象初始化表达式和数组初始化表达式非常相似,只是方括号被花括号代替,并且每个子表达式都包含一个属性名和一个冒号作为前缀。

// 一个拥有两个属性成员的对象
var p = {
  x: 2.3,
  y: -1.2,
};

// 一个空对象
var q = {};

// q 的属性成员和 p 的一样
q.x = 2.3;
q.y = -1.2;
1
2
3
4
5
6
7
8
9
10
11
12

对象直接量也可以嵌套。

var rectangle = {
  upperLeft: { x: 2, y: 2 },
  lowRight: { x: 4, y: 5 },
};
1
2
3
4

JavaScript 求对象初始化表达式的值的时候,对象表达式也都会各自计算一次,并且它们不必包含常数值:它们可以是任意 JavaScript 表达式。

同样,对喜爱那个直接量中的属性名称可以是字符串而不是标识符(这在那些只能使用保留字或一些非法标识符作为属性名的地方非常有用)

var side = 1;
var square = {
  upperLeft: {
    x: p.x,
    y: p.y,
  },
  lowerRight: {
    x: p.x + side,
    y: p.y + side,
  },
};
1
2
3
4
5
6
7
8
9
10
11
编辑