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代码的表达能力和可读性。理解并熟练运用解构赋值,不仅能使代码变得更简洁、更优雅,更能帮助我们培养起更深层次的编程思维和逻辑抽象能力。在未来的学习和工作中,让我们不断探索解构赋值的无限可能,将这一特性充分融入到实际项目开发中,享受编程的乐趣,提升开发效率。
*请认真填写需求信息,我们会在24小时内与您取得联系。