首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

EasyUI/JavaScript 數組定義與賦值:變量聲明錯誤導致無值

     編輯:程式設計綜合問答

代碼 var nums=nums[fs]; 存在嚴重邏輯錯誤:用未定義的 nums 索引 fs 來初始化 nums 自身,導致 nums 變為 undefined,後續賦值失效。

錯誤代碼分析

var nums = nums[fs]; // nums 未定義 → ReferenceError 或 nums=undefined
for (var j = 0; j <= gfd; j++) {
    a = num * j;     // num 未定義
    nums[j] = a;     // nums 非陣列/undefined → TypeError
    alert("a" + a);
}

正確寫法

// 1. 先聲明陣列
var nums = []; // 或 new Array()

// 2. 確保所有變量已定義
var num = 10;    // 示例值
var fs = 0;      // 示例值
var gfd = 5;     // 示例值

// 3. 迴圈賦值
for (var j = 0; j <= gfd; j++) {
    var a = num * j; // 用 var/let 限制作用域
    nums[j] = a;
    console.log("a = " + a); // 建議用 console.log 替代 alert
}
console.log(nums); // [0, 10, 20, 30, 40, 50]

關鍵點

  • 聲明在前,賦值在後:var nums = [] 必須先於任何 nums[...] 訪問。
  • 變量必須定義:num、fs、gfd 使用前需賦值。
  • EasyUI 只是 UI 庫:數組操作純屬 JavaScript 原生語法,與 EasyUI 無關。
  • 調試技巧:瀏覽器 F12 Console 直接運行代碼片段,即時查看變量值與報錯堆疊。

JavaScript 變量提升特性僅提升聲明(var nums),不提升賦值(= []),所以 var nums = nums[fs] 相當於 var nums; nums = nums[fs],此時 nums 為 undefined,undefined[fs] 拋錯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved