整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

javascript日常小坑-01变量定义与赋值

avascript是弱类型语言,在变量的定义和使用上相对来说比较随意,也比较简单,对于简单数据类型的变量,我相信大家是没有任何问题的,但是对于复杂数据类型,特别是嵌套的复杂数据类型,就有一点需要注意,在赋值多级变量前,之前的变量需要逐级定义后才行,否则会导致程序执行中断,让人难受的是它还不会在控制台报任何错误。

举个例子吧,更直观一点

let a={}

a.b[1].c=[]

console.log(2)

这里会导致程序中断,console是不会执行到的,想要正常执行,需要逐级定义,修改如下

let a={}

a.b=[]

a.b[1]={}

a.b[1].c=[]

console.log(2)

修改后,console才能正常打印。

大家在平时调试程序的时候发现看不出什么程序逻辑错误,控制台也不报错的时候,可以考虑下这个点,希望对您有用,谢谢

喽,大家好,我是雷工!

今天公乌素这缺水的镇子,稀稀拉拉下了一天的雨,一场秋雨一场寒,风开始愈发清凉。

看日历发现明天就是二十四节气里的白露了,都白露了,原来不知不觉已经深秋了。

感慨几句,接着看会儿JavaScript,以下为学习笔记。

赋值运算符:对变量进行赋值的运算符。

1、用的最多的赋值运算符 = 将等号右边的值赋值给左边的变量,要求左边要是一个容器。

2、其他赋值运算符:

2.1、+= 例如:x += y 等价于 x = x +y ;

2.2、-= 例如:x -= y 等价于 x = x -y ;

2.3、*= 例如:x *= y 等价于 x = x *y ;

2.4、/= 例如:x /= y 等价于 x = x /y ;

2.5、%= 例如:x %= y 等价于 x = x %y ;

3、使用这些运算符可以在对变量赋值时进行快速操作。

4、+=赋值运算符的出现是为了简化代码,如下示例:

4.1、示例1

<script>
	 let n=1
 	n=n+1
 	console.log(n) //结果是2
</script>

4.2、示例2:等效示例1

<script>
 	let n=1
 	n +=1 //表示的含义是a=a+1;
 	console.log(n) //结果是2
</script>

后记

以上为JavaScript基础知识运算符:赋值运算符的笔记,非常简单。

【ES6】聊聊ES6新增特性——解构赋值:颠覆传统的赋值方式,重构你的编程思维

**引言**

在Web前端开发的长河中,ES6(ECMAScript 6)的到来无疑是里程碑式的革新,其中解构赋值这一特性彻底改变了我们对JavaScript赋值的认知。本文将深入浅出地剖析解构赋值的魅力所在,通过详细的解释、丰富的代码实例和实战应用场景,带你领略ES6解构赋值带来的简洁与高效,让你在编程之路上更加得心应手。

## **一、解构赋值基础概念**

### **1. 数组解构赋值**

在ES6以前,我们对数组元素的赋值通常需要逐个遍历:

```javascript

let array = [1, 2, 3];

let a = array[0];

let b = array[1];

let c = array[2];

```

而使用解构赋值,一行代码即可搞定:

```javascript

let [a, b, c] = [1, 2, 3];

console.log(a); // 输出:1

console.log(b); // 输出:2

console.log(c); // 输出:3

```

### **2. 对象解构赋值**

同样的,对象属性的赋值也可以通过解构实现:

```javascript

// 传统方式

let obj = { a: 1, b: 2, c: 3 };

let a = obj.a;

let b = obj.b;

let c = obj.c;

// 解构赋值方式

let { a, b, c } = { a: 1, b: 2, c: 3 };

console.log(a); // 输出:1

console.log(b); // 输出:2

console.log(c); // 输出:3

```

## **二、解构赋值进阶玩法**

### **1. 默认值**

解构赋值允许设置默认值,当解构的目标值为`undefined`或不存在时,使用默认值替代:

```javascript

let { a = 1, b = 2 } = { b: 3 };

console.log(a); // 输出:1 (因为a未定义,所以使用默认值)

console.log(b); // 输出:3

```

### **2. 展开运算符与嵌套解构**

- 展开运算符 `...` 可以用于合并数组或提取数组剩余部分:

```javascript

let arr1 = [1, 2];

let arr2 = [3, ...arr1]; // arr2现在为 [3, 1, 2]

let [first, ...rest] = [1, 2, 3, 4, 5];

console.log(first); // 输出:1

console.log(rest); // 输出:[2, 3, 4, 5]

```

- 嵌套解构可以用于处理嵌套结构的对象或数组:

```javascript

let nested = { user: { name: "Tom", age: 20 } };

let { user: { name, age } } = nested;

console.log(name); // 输出:Tom

console.log(age); // 输出:20

let complexArray = [[1, 2], [3, 4]];

let [ [a, b], [c, d] ] = complexArray;

console.log(a, b, c, d); // 输出:1 2 3 4

```

### **3. 函数参数解构**

解构赋值还能应用于函数参数,简化参数列表:

```javascript

// 传统方式

function getUserInfo(user) {

let { name, age } = user;

// ...

}

getUserInfo({ name: "Tom", age: 20 });

// 使用解构赋值

function getUserInfo({ name, age }) {

// ...

}

getUserInfo({ name: "Tom", age: 20 });

```

## **三、解构赋值在实战中的应用**

**1. 函数返回值解构**

```javascript

function getUser() {

return { name: "Tom", age: 20 };

}

let { name, age } = getUser();

console.log(name); // 输出:Tom

console.log(age); // 输出:20

```

**2. 模块导入导出**

```javascript

// module.js

export const USER_INFO = { name: "Tom", age: 20 };

// 在另一个模块中导入并解构

import { USER_INFO } from './module.js';

let { name, age } = USER_INFO;

console.log(name); // 输出:Tom

console.log(age); // 输出:20

```

**结语**

解构赋值这一ES6特性,以其独特的魅力和广泛的适用性,极大地提升了JavaScript代码的表达能力和可读性。理解并熟练运用解构赋值,不仅能使代码变得更简洁、更优雅,更能帮助我们培养起更深层次的编程思维和逻辑抽象能力。在未来的学习和工作中,让我们不断探索解构赋值的无限可能,将这一特性充分融入到实际项目开发中,享受编程的乐趣,提升开发效率。