博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
join()方法之我见
阅读量:5100 次
发布时间:2019-06-13

本文共 1220 字,大约阅读时间需要 4 分钟。

JavaScript join() 方法

定义和用法

join() 方法用于把数组中的所有元素放入一个字符串。

元素是通过指定的分隔符进行分隔的。

语法

arrayObject.join(separator)
参数 描述
separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。

返回值

返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成的。

以上内容摘自w3shool。

一日在群中看见一小哥发出了个如下问题:

问为什么是255,而不是256;鄙人一看测试了下,确实挺有意思。于是乎就开始想。。。

为什么?为什么!?为什么!!?

重要的事情说三遍于是就上代码开始调试猜想。

1.不带join()看看

var arr=new Array(256);

console.log(arr.length);//256

嗯,开辟了256个空间。

2.带join()看看

(1)var arr=new Array(256).join();//join(),空白时,括号里的参数默认以逗号分隔

console.log(arr.length);//255,是不是很奇怪为什么变成255????

(2)var arr new Array(256)。join(,“”);

console.log(arr.length);//只是为了说明(1)、(2)两种方法一致

3.带join()里面传参看看(重头戏来了)

(1)var arr =new Array(256).join('');

console.log(arr.length);//居然是0,为啥?

因为字符串是空的,又没有符号进行连接,所以返回的字符串就是空的咯。

(2)var arr=new Array(256).join(" ");//注意注意此处不是空的,而是一个空格啊

console.log(arr.length);//255,很神奇啊,255又出现拉,为神马?

(3)var arr = new Array(256).join("&");

console.log(arr.length);//打印出来了255个&字符串

看到这里聪明的小伙伴是不是明白了呢?

其实我们最后打印出来的为什么是255个字符串呢?因为空和空格是两种概念,我们最后其实是返回了255个空格字符串,回头看作者的话

空是什么都没有,空格是虽然我们看不到,但在计算机里是存在的,当我们给空的数组里的插上空格进行连接时,返回的字符串就不空了,只不过我们肉眼看不到。

说道这里还是有小伙伴可能会疑惑,可是为什么少一个呢。。。。你是不是傻,最后一个元素后面还需要插嘛?

END

 

 

 

转载于:https://www.cnblogs.com/yinxianglong/p/5825339.html

你可能感兴趣的文章
ubuntu下 java、mysql、tomcat(ssl认证) 配置
查看>>
linux命名详解及其软件安装实例
查看>>
查看iOS沙盒(SanBox)文件
查看>>
数据结构与算法
查看>>
顺时针打印矩阵
查看>>
[转载]Chrome 与 Chrome OS 各版本下载集合
查看>>
面试微软前必须要读的十本书
查看>>
hadoop的安装和配置
查看>>
spinnaker
查看>>
hdu 1599 find the mincost route(无向图的最小环)
查看>>
转载:解读CSS布局之-水平垂直居中(2)
查看>>
第十八章 30限制数组越界
查看>>
浅谈unique列上插入重复值的MySQL解决方案
查看>>
hdu 4859(思路题)
查看>>
11.2.0.4 sql*loader/oci direct load导致kpodplck wait before retrying ORA-54
查看>>
sql server 2008空间释放
查看>>
团队-科学计算器-最终总结
查看>>
树的遍历 TJUACM 3988 Password
查看>>
UVA 725 - Division
查看>>
bzoj1798: [Ahoi2009]Seq 维护序列seq(线段树)
查看>>