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

join()方法之我见的更多相关文章

  1. java多线程中关于join方法的使用

    Thread的非静态方法join()让一个线程B"加入"到另外一个线程A的尾部.在A执行完毕之前,B不能工作.例如:         Thread t = new MyThread ...

  2. 【多线程】java多线程 测试例子 详解wait() sleep() notify() start() join()方法 等

    java实现多线程,有两种方法: 1>实现多线程,继承Thread,资源不能共享 2>实现多线程  实现Runnable接口,可以实现资源共享 *wait()方法 在哪个线程中调用 则当前 ...

  3. JAVA join()方法

    转自:http://www.open-open.com/lib/view/open1371741636171.html 一.为什么要用join()方法 在很多情况下,主线程生成并起动了子线程,如果子线 ...

  4. Thread.join()方法

    thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程.比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B.t.join() ...

  5. join()方法

    1.现在有T1.T2.T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行? package com.mianshi.easy; class JoinDemo implements ...

  6. python thread的join方法解释

    python的Thread类中提供了join()方法,使得一个线程可以等待另一个线程执行结束后再继续运行.这个方法还可以设定一个timeout参数,避免无休止的等待.因为两个线程顺序完成,看起来象一个 ...

  7. Java Thread.join()方法

    一.使用方式. join是Thread类的一个方法,启动线程后直接调用,例如: Thread t = new AThread(); t.start(); t.join(); 二.为什么要用join() ...

  8. Java线程中yield与join方法的区别

    长期以来,多线程问题颇为受到面试官的青睐.虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用.之前,我讨论了一个w ...

  9. 简谈Java的join()方法

    join()是Thread类的一个方法.根据jdk文档的定义: public final void join()throws InterruptedException: Waits for this ...

随机推荐

  1. SpringMVC之controller篇

    概述 继 spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能.现在你无须让 Controller 继承任何接口,无需在 ...

  2. trim(),正则表达式中文匹配

    ^[/u4E00-/u9FA5]+$ 匹配中文 验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”  验证InternetURL:“^http://([ ...

  3. Scala练习(二)

    3.计算指定目录下以".txt"为扩展名的文件个数.注:随便建个目录,建几个.txt文件即可. 4.计算"input_4.txt"文件中搜索词的出现次数,并按次 ...

  4. .Net Globalization and Localization

    随着互联网的发展日益壮大和活跃,网上购物交易越来越频繁,一个网站支持多种语言在所难免,所以国际化和本地化在现在的网站中的作用越来越大,一个网站的使用量和搜索量有可能受国际化的影响一点.所以在当今做一个 ...

  5. 权重和层叠规则决定了CSS样式优先级

    一.基本的优先级规则 比较同一级别的个数,数量多的优先级高,如果相同即比较下一级别的个数,至于各级别的优先级如下: important > 内联 > ID > 类 > 标签 | ...

  6. Microsoft Help Viewer

    Microsoft Help Viewer 1.0 Microsoft Help Viewer 2.0 Help Library 管理器 -Microsoft Help 查看器 打开VS 2010   ...

  7. PHP分页代码

       }            <a href="fenye.php?page=<?php echo  <?php  }    <a href="fenye ...

  8. P53 T3

    为方便旅客,某航空公司拟开发一个机票预定系统.旅行社把预定机票的旅客信息(姓名.性别.工作单位.身份证号码.旅行时间.旅行目的地等)输入进入该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起 ...

  9. ScrollView can host only one direct child

    Android 采用ScrollView布局时出现异常:ScrollView can host only one direct child. 异常原因: 主要是ScrollView内部只能有一个子元素 ...

  10. 1、jvm的体系结构

    jvm包括两子系统两组件 a.两子系统:Class Loader子系统,Execution engine子系统 b.两组件:Runtime Date Area 和 Native Interface