1. 程式人生 > >JS —— Uncaught TypeError: Cannot read property 'slice' of undefined 錯誤

JS —— Uncaught TypeError: Cannot read property 'slice' of undefined 錯誤

JS Array 物件的slice 方法:

arrayObject.slice(start,end)
引數說明:

start:

必需。規定從何處開始選取(為索引,從0開始)。如果是負數,那麼它規定從陣列尾部開始算起的位置。也就是說,-1 指最後一個元素,-2 指倒數第二個元素,以此類推。

end:

可選。規定從何處結束選取。該引數是陣列片斷結束處的陣列下標。如果沒有指定該引數,那麼切分的陣列包含從 start 到陣列結束的所有元素。如果這個引數是負數,那麼它規定的是從陣列尾部開始算起的元素。

返回:

返回一個新的陣列,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。

示例:

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

document.write(arr + "<br />")
document.write(arr.slice(1) + "<br />")
document.write(arr)
輸出:
George,John,Thomas
John,Thomas
George,John,Thomas

以上參考:http://www.w3school.com.cn/jsref/jsref_slice_array.asp

使用某些JS 框架時或自己使用slice()方法時,可能出現以下錯誤:

Uncaught TypeError: Cannot read property 'slice' of undefined

解決:

知道slice() 方法後就不難知道,錯誤是由於陣列物件未定義或為null 引起的,所以檢視獲取資料的介面是否請求到了資料。

此外(重點),對於一些能直接與後臺資料庫互動的框架,如KendoUI,它要求前端渲染頁面時的資料模型要與後臺的資料模型(包括欄位名稱)一致,所以如果請求到了資料還是提示此錯,則檢查前後端資料模型的欄位命名是否相同。