Home Web Front-end JS Tutorial Introduction to Javascript Array Basics_Basic Knowledge

Introduction to Javascript Array Basics_Basic Knowledge

May 16, 2016 pm 03:10 PM

Javascript is a magical language, and its arrays are equally unique. We get rid of the dross, extract the essence, and summarize the commonly used best practices. If there are any errors, please point them out.

Javascript array is an array-like object that has the characteristics of an object. When the property names are small, contiguous integers, an array should be used; otherwise, an object should be used.

Array source

All arrays are constructed from Array. Let’s test the constructor property.

var arr = [];
arr.constructor === Array; // true
arr.constructor === Array.prototype.constructor; // true
Copy after login

Create array

//数组字面量方式
var arr1 = [1, 2, 3]; // [1,2,3]

//构造函数方式
var arr2 = new Array();    // [] 空数组
var arr3 = new Array('9');   // ["9"] 一个字符串元素
var arr4 = new Array(9);    // [] 数组长度length为9
var arr5 = new Array([9]);   // [[9]] 相当于二维数组
var arr6 = new Array(1, 2, 3); // [1, 2, 3]
var arr7 = new Array(1, function f(){}, {o : 6}, null,undefined,true);
// 数组可以存储任意混合数据类型

Copy after login

Due to the way arr4 works, when only one numeric parameter is passed to the Array constructor, the constructor will return an empty array with the length attribute set. Therefore, it is recommended to use the array literal method, which is short and concise.

Detect whether the object is an array

var arr1 = [1, 2, 3];
typeof(arr1); // object
Copy after login

It is well known that typeof does not detect types correctly.

arr1 instanceof Array; //true
Copy after login

The instanceof method has no problem within a web page. Once other web pages are nested, there will be two global scopes, and there will be problems in the detection when calling each other.

Array.isArray(arr1); // true
Copy after login

Array.isArray() is a new method in ECMAScript5 and has no defects. The only problem is that the IE8 browser does not support it, and the IE9 browser does not support it in strict mode.

Object.prototype.toString.apply(arr1).slice(8, -1); // Array
Copy after login

The last way is the best way to detect the type.

Array length

The length of the array is also its attribute. Increasing the length will not cause an out-of-bounds error.
The length value is equal to the largest integer attribute name of the array plus 1.

var arr1 = [];
arr1[9] = 1; // 长度为10,只包含一个元素的数组
Copy after login

Set a small value to delete attributes whose names are greater than or equal to length.
If the length value is set to 0, it is equivalent to clearing the array.

var arr2 = [1, 2, 3, 4, 5];
arr2.length = 3; // [1, 2, 3]
arr2.length = 0; // []
Copy after login

Array traversal

To traverse an array, do not use a for in loop to traverse the array, because for in will traverse all properties on the prototype chain, but we don’t need so many. It is recommended to use for loop.

var arr1 = [1, 2, 3];
arr1.test = 9;

//for in 方式
for(var prop in arr1){
  cosole.log(prop, arr1[prop]);
}
// 输出如下
// 0 1
// 1 2
// 2 3
// test 9

//for循环方式
for(var i = 0, len = arr1.length; i < len; i++){
  console.log(arr1[i]);
}
//输出如下
// 1
// 2
// 3

Copy after login

We see that the for in method has an extra test value, which can be eliminated using the hasOwnProperty function, but that will be much slower than the for loop method.
Caching the array length is a necessary step, and there is a performance overhead for each access (the latest browsers have optimized this aspect).

Summary

A brief introduction to the basic knowledge of Array. At this point, you can have a more comprehensive understanding of Array. The next article introduces the Array method.

Although there are many aspects of Javascript that are not easy to understand, over a long period of study, I have slowly fallen in love with it (because there are no girls for me to love now).

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat Commands and How to Use Them
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How do I create and publish my own JavaScript libraries? How do I create and publish my own JavaScript libraries? Mar 18, 2025 pm 03:12 PM

Article discusses creating, publishing, and maintaining JavaScript libraries, focusing on planning, development, testing, documentation, and promotion strategies.

How do I optimize JavaScript code for performance in the browser? How do I optimize JavaScript code for performance in the browser? Mar 18, 2025 pm 03:14 PM

The article discusses strategies for optimizing JavaScript performance in browsers, focusing on reducing execution time and minimizing impact on page load speed.

What should I do if I encounter garbled code printing for front-end thermal paper receipts? What should I do if I encounter garbled code printing for front-end thermal paper receipts? Apr 04, 2025 pm 02:42 PM

Frequently Asked Questions and Solutions for Front-end Thermal Paper Ticket Printing In Front-end Development, Ticket Printing is a common requirement. However, many developers are implementing...

How do I debug JavaScript code effectively using browser developer tools? How do I debug JavaScript code effectively using browser developer tools? Mar 18, 2025 pm 03:16 PM

The article discusses effective JavaScript debugging using browser developer tools, focusing on setting breakpoints, using the console, and analyzing performance.

Who gets paid more Python or JavaScript? Who gets paid more Python or JavaScript? Apr 04, 2025 am 12:09 AM

There is no absolute salary for Python and JavaScript developers, depending on skills and industry needs. 1. Python may be paid more in data science and machine learning. 2. JavaScript has great demand in front-end and full-stack development, and its salary is also considerable. 3. Influencing factors include experience, geographical location, company size and specific skills.

How do I use source maps to debug minified JavaScript code? How do I use source maps to debug minified JavaScript code? Mar 18, 2025 pm 03:17 PM

The article explains how to use source maps to debug minified JavaScript by mapping it back to the original code. It discusses enabling source maps, setting breakpoints, and using tools like Chrome DevTools and Webpack.

The difference in console.log output result: Why are the two calls different? The difference in console.log output result: Why are the two calls different? Apr 04, 2025 pm 05:12 PM

In-depth discussion of the root causes of the difference in console.log output. This article will analyze the differences in the output results of console.log function in a piece of code and explain the reasons behind it. �...

TypeScript for Beginners, Part 2: Basic Data Types TypeScript for Beginners, Part 2: Basic Data Types Mar 19, 2025 am 09:10 AM

Once you have mastered the entry-level TypeScript tutorial, you should be able to write your own code in an IDE that supports TypeScript and compile it into JavaScript. This tutorial will dive into various data types in TypeScript. JavaScript has seven data types: Null, Undefined, Boolean, Number, String, Symbol (introduced by ES6) and Object. TypeScript defines more types on this basis, and this tutorial will cover all of them in detail. Null data type Like JavaScript, null in TypeScript

See all articles