点击切换帐号登陆
帐号密码登陆

再聊聊数组字面以及遇到的坑

6.数组字面量
==========

**知识点**
1.创建数组的方式
2.Array()函数的坑

---------------------------------------------------

1.创建数组的方式
--------------
- 构造函数: Array()
- 字面量: [...]

---------------------------------------------------

2.Array()函数的坑
----------------
- 单值元素
- 类型判断

---------------------------------------------------

### 示例代码: code/demo05.html

```html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>数组字面量</title>
</head>
<body>
<script>
     //1.创建数组的二种方式: 构造函数和字面量
     var arr1= new Array(1,2,3);    // new 构造函数
     var arr2 = Array('a','b','c'); // new 可以省略
     var arr3 = [10,20,30];     // 字面量

    // 以上三种语法,你最喜欢哪个呢?显示字面量最简洁,直观
    // 为什么不推荐构造函数呢, 这里有二个大坑
    // 1. 第一坑: 单值问题
    var arr4 = new Array(3);
    // 实际上会创建三个元素的空数组
     console.log(arr4.length); // 3
    console.log(arr4[0]);  // 每一个都是: undefined
    // 那如何创建数组呢?
    var arr5 = new Array(0);  // 长度为0的数组
    arr5.push('html');  // push()
    arr5[0] = 'css';  // 直接用索引
    // 是不是相当麻烦呢?
    // 字面量就非常的简单
    var arr6 = [10];
    console.log(arr6);


    // 2. 第二坑: 类型检测
    console.log(typeof arr1);
    console.log(typeof arr2);
    console.log(typeof arr3);
    console.log(typeof arr4);
    console.log(typeof arr5);
    console.log(typeof arr6);
    //你会发现,统统都是一种类型: Object ,对象多了去了,具体是哪个对象呢?

    console.log( arr1.hasOwnProperty('length'));  // 判断是否存在某个数组属性
    // 事实这个方法也可靠,因为一些对象也会存在这个属性,例如 arguments对象就是length

    // 你可能想到了: instanceof 来判断是否是Array构造函数的实例
    console.log(arr2 instanceof Array);
    // 看上去似乎可以,但是别忘了了这个世界上有一种叫做IE的浏览器,会出问题,不过好消息是,
    // 微软打算放弃IE浏览器, 最新的基于Chrome内核开发, 全球前端开发人员的估计要笑哭了

    // 还好, JS官方,  ES5标准,提供一个方法: Array.isArray()来检测数组,这是最安全的
    console.log(Array.isArray(arr3));

</script>
</body>
</html>
```


任务

?不会了怎么办
无数据提示暂无评论哟...我要评论
网站导航
网站首页
学习路径
视频教程
开发软件
旗下子站
php中文网
phpstudy
技术文章
文档工具
关于我们
企业合作
人才招聘
联系我们
讲师招募
QQ交流群
QQ交流群
微信公众号
微信公众号