Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
avascript是弱類型語言,在變量的定義和使用上相對來說比較隨意,也比較簡單,對于簡單數(shù)據(jù)類型的變量,我相信大家是沒有任何問題的,但是對于復雜數(shù)據(jù)類型,特別是嵌套的復雜數(shù)據(jù)類型,就有一點需要注意,在賦值多級變量前,之前的變量需要逐級定義后才行,否則會導致程序執(zhí)行中斷,讓人難受的是它還不會在控制臺報任何錯誤。
舉個例子吧,更直觀一點
let a={}
a.b[1].c=[]
console.log(2)
這里會導致程序中斷,console是不會執(zhí)行到的,想要正常執(zhí)行,需要逐級定義,修改如下
let a={}
a.b=[]
a.b[1]={}
a.b[1].c=[]
console.log(2)
修改后,console才能正常打印。
大家在平時調試程序的時候發(fā)現(xiàn)看不出什么程序邏輯錯誤,控制臺也不報錯的時候,可以考慮下這個點,希望對您有用,謝謝
嘍,大家好,我是雷工!
今天公烏素這缺水的鎮(zhèn)子,稀稀拉拉下了一天的雨,一場秋雨一場寒,風開始愈發(fā)清涼。
看日歷發(fā)現(xiàn)明天就是二十四節(jié)氣里的白露了,都白露了,原來不知不覺已經(jīng)深秋了。
感慨幾句,接著看會兒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、+=賦值運算符的出現(xiàn)是為了簡化代碼,如下示例:
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新增特性——解構賦值:顛覆傳統(tǒng)的賦值方式,重構你的編程思維
**引言**
在Web前端開發(fā)的長河中,ES6(ECMAScript 6)的到來無疑是里程碑式的革新,其中解構賦值這一特性徹底改變了我們對JavaScript賦值的認知。本文將深入淺出地剖析解構賦值的魅力所在,通過詳細的解釋、豐富的代碼實例和實戰(zhàn)應用場景,帶你領略ES6解構賦值帶來的簡潔與高效,讓你在編程之路上更加得心應手。
## **一、解構賦值基礎概念**
### **1. 數(shù)組解構賦值**
在ES6以前,我們對數(shù)組元素的賦值通常需要逐個遍歷:
```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. 對象解構賦值**
同樣的,對象屬性的賦值也可以通過解構實現(xiàn):
```javascript
// 傳統(tǒng)方式
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. 展開運算符與嵌套解構**
- 展開運算符 `...` 可以用于合并數(shù)組或提取數(shù)組剩余部分:
```javascript
let arr1 = [1, 2];
let arr2 = [3, ...arr1]; // arr2現(xiàn)在為 [3, 1, 2]
let [first, ...rest] = [1, 2, 3, 4, 5];
console.log(first); // 輸出:1
console.log(rest); // 輸出:[2, 3, 4, 5]
```
- 嵌套解構可以用于處理嵌套結構的對象或數(shù)組:
```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. 函數(shù)參數(shù)解構**
解構賦值還能應用于函數(shù)參數(shù),簡化參數(shù)列表:
```javascript
// 傳統(tǒng)方式
function getUserInfo(user) {
let { name, age } = user;
// ...
}
getUserInfo({ name: "Tom", age: 20 });
// 使用解構賦值
function getUserInfo({ name, age }) {
// ...
}
getUserInfo({ name: "Tom", age: 20 });
```
## **三、解構賦值在實戰(zhàn)中的應用**
**1. 函數(shù)返回值解構**
```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代碼的表達能力和可讀性。理解并熟練運用解構賦值,不僅能使代碼變得更簡潔、更優(yōu)雅,更能幫助我們培養(yǎng)起更深層次的編程思維和邏輯抽象能力。在未來的學習和工作中,讓我們不斷探索解構賦值的無限可能,將這一特性充分融入到實際項目開發(fā)中,享受編程的樂趣,提升開發(fā)效率。
*請認真填寫需求信息,我們會在24小時內與您取得聯(lián)系。