concat()

连接多个字符串,返回合并后的字符串。

 var s1="a";
var s2="b";
var s3="c"; console.log(s1.concat(s2,s3));//abc

concat() 方法的结果等同于:result = s1 + s2 + ... + sN。如果有不是字符串的参数,则它们在连接之前将首先被转换为字符串。

数组中的concat():将参数添加为数组的元素,返回新的数组。

 var arr = [1, 2, 3];
console.log(arr.concat(4, 5));//[1,2,3,4,5]

indexOf()

查找子串第一次出现的索引。

 var s="abcd";
console.log(s.indexOf("b"));//

若没有匹配项,返回 -1。

 var s="abcd";
console.log(s.indexOf("e"));//-1

可以传入第二个参数:fromIndex,表示从索引位置fromIndex开始查找,默认从起始索引0开始查找;若fromIndex为负,则从索引0开始查找。

 var s = "aba";
console.log(s.indexOf("a", 0));//
console.log(s.indexOf("a", 1));//
console.log(s.indexOf("a", -1));//

该方法对大小写敏感。

 var s="Aba";
console.log(s.indexOf("a"));//

lastIndexOf()

类似 indexOf() ,但从右往左查找。

 var s = "aba";
console.log(s.lastIndexOf("a"));//

也可指定起始索引,默认从最大索引开始查找。

 var s = "aba";
console.log(s.lastIndexOf("a",1));//

charAt()

返回指定索引位置的字符(因为Javascript中没有字符类型,所以返回的是长度为1的字符串)。

 var s="abc";
console.log(s.charAt(1));//b

若索引越界,返回空字符串。

 var s="abc";
console.log(s.charAt(-1));//""

substr()

substr(fromIndex,length):从起始索引fromIndex开始截取长度length的字符串。

 var s="abc";
console.log(s.substr(1,1));//b

若length < 1,返回空字符串。

 var s="abc";
console.log(s.substr(1,-1));//""

若不指定length或者length超过可截取的最大长度,则截取到结尾。

 var s="abc";
console.log(s.substr(1));//bc
console.log(s.substr(1,10));//bc

若起始索引为负,则从右往左开始截取(从右往左的索引从-1开始)。

 var s="abc";
console.log(s.substr(-1,1));//c

substring()

substring(startIndex,endIndex):截取起始索引startIndex到结束索引endIndex的子字符串,结果包含startIndex处的字符,不包含endIndex处的字符。

 var s="abc";
console.log(s.substring(1,2));//b

若startIndex或者endIndex为负,则会被替换为0。

 var s="abc";
console.log(s.substring(-1,2));//ab

若startIndex和endIndex相等,则返回空字符串。

若startIndex > endIndex,则执行方法时,两个值会被交换。

 var s="abc";
console.log(s.substring(2,1));//b

若不指定endIndex或endIndex超出最大索引,则截取到结尾。

 var s="abc";
console.log(s.substring(1));//bc
console.log(s.substring(1,10));//bc

slice()

slice(startIndex,endIndex):截取起始索引startIndex到结束索引endIndex的子字符串,结果包含startIndex处的字符,不包含endIndex处的字符。

 var s="abc";
console.log(s.slice(1,2));//b

若startIndex或者endIndex为负,表示该索引是从右往左计算的索引(跟substring不同)。

 var s="abc";
console.log(s.slice(1,2));//b
//等价于
console.log(s.slice(1,-1));//b
//等价于
console.log(s.slice(-2,-1));//b
//等价于
console.log(s.slice(-2,2));//b

若startIndex所表示的索引位置等于endIndex所表示的索引位置,或者startIndex所表示的索引位置在endIndex所表示的索引位置之后,则返回空字符串(跟substring不同)。

 var s="abc";
console.log(s.slice(1,1));//""
console.log(s.slice(-1,-2));//""

split()

按给定字符串分割,返回分割后的多个字符串组成的字符串数组。

 var s="a,bc,d";
console.log(s.split(","));//["a", "bc", "d"] s="a1b1c1d1";
console.log(s.split("1"));//["a", "b", "c", "d", ""]

《JavaScript-The Definitive Guide》读书笔记:字符串常用方法的更多相关文章

  1. 《javascript权威指南》读书笔记——第二篇

    <javascript权威指南>读书笔记——第二篇 金刚 javascript js javascript权威指南 今天是今年的196天,分享今天的读书笔记. 第2章 词法结构 2.1 字 ...

  2. 《javascript权威指南》读书笔记——第一篇

    <javascript权威指南>读书笔记——第一篇 金刚 javascript js javascript权威指南 由于最近想系统学习下javascript,所以开始在kindle上看这本 ...

  3. 《JavaScript高级程序设计》读书笔记--前言

    起因 web编程过程使用javascript时感觉很吃力,效率很低.根本原因在于对javascript整个知识体系不熟,看来需要找些书脑补一下,同时欢迎众网友监督. 大神推荐书籍 看了博客大神们推荐的 ...

  4. 《javascript权威指南》读书笔记(连载)

    这是一篇很长的博客 终于把权威指南给买回来了,之前一直犹豫,第一:书太厚,怕买了不能坚持看完.第二:觉得太贵,最少100¥.现在实习也能发点工资了,给自己定了一个志愿:把一个月的工资用于买书.这么一想 ...

  5. 《JavaScript权威指南》读书笔记(一)

    日期 2015-11-28 把之前的读书笔记在我弄丢它之前搬过来~~ 时间过去好久,回头一看理解都不一样了. 重点浏览了一下和Java的不同之处: js是一种宽松类型语言:js不区别整形数值与浮点型数 ...

  6. 《Javascript高级程序设计》读书笔记之对象创建

    <javascript高级程序设计>读过有两遍了,有些重要内容总是会忘记,写一下读书笔记备忘 创建对象 工厂模式 工厂模式优点:有了封装的概念,解决了创建多个相似对象的问题 缺点:没有解决 ...

  7. 《JavaScript 高级程序设计》读书笔记

    文章目录 第三章 基本语法 第四章 变量.作用域和内存问题 第五章 应用类型 1. Array 类型 2. RegExp 类型 3. Function 类型 4. String 类型 第六章 面向对象 ...

  8. 《Javascript高级程序设计》读书笔记(1-3章)

    第一章 JavaScript简介 1.1 JavaScript简史 略 1.2 JavaScript实现 虽然 JavaScript 和 ECMAScript 通常都被人们用来表达相同的含义,但 Ja ...

  9. JavaScript语言精粹(读书笔记)

    第一章 精华 1,JavaScript的函数(主要)基于词法作用域(lexical scoping)的顶级对象.强类型语言允许编译器在编译时检测错误,但弱类型很自由,无需建立复杂的类层次,不用做强制造 ...

  10. 你不知道的Javascript(上卷)读书笔记之二 ---- 词法作用域

    在前一篇文章中,我们把作用域定义为"管理.维护变量的一套规则",接下来是时候来深入讨论一下Js的作用域问题了,首先我们要知道作用域一般有两种主要的工作类型,一种是词法作用域,一种是 ...

随机推荐

  1. 020_秘钥管理服务器vault

    一. https://github.com/hashicorp/vault     #待研究

  2. LeetCode(41):缺失的第一个正数

    Hard! 题目描述: 给定一个未排序的整数数组,找出其中没有出现的最小的正整数. 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输 ...

  3. 【python】多线程queue导致的死锁问题

    写了个多线程的python脚本,结果居然死锁了.调试了一整天才找到原因,是我使用queue的错误导致的. 为了说明问题,下面是一个简化版的代码.注意,这个代码是错的,后面会说原因和解决办法. impo ...

  4. 【mysql】autocommit=0后,commit, rollback无效

    之前在[mysql]MySQLdb中的事务处理中用autocommit和commit()以及rollback()实现了事务处理. 但后来,用同样的代码在另一个数据库中运行却失败了.找了一个下午的原因. ...

  5. &&(与),||(或),|,!(非)

    &&(与),||(或),|,!(非) 只能用于布尔值 //: object/test.java package object; import java.util.*; public c ...

  6. python 全栈开发,Day73(django多表添加,基于对象的跨表查询)

    昨日内容回顾 多表方案: 如何确定表关系呢? 表关系是在2张表之间建立的,没有超过2个表的情况. 那么相互之间有2条关系线,先来判断一对多的关系. 如果其中一张表的记录能够对应另外一张表的多条记录,那 ...

  7. Using jconsole to connect to JMX on AS7

    Using jconsole to connect to JMX on AS7 https://developer.jboss.org/wiki/UsingJconsoleToConnectToJMX ...

  8. [转]win7远程连接ubuntu14.04的相关配置,解决连接时灰屏

    如何设置可以远程操作 安装必要的远程桌面的软件:xfce,xrdp,vnc4server sudo apt-get update sudo apt-get install xfce4 sudo apt ...

  9. gitlab发送邮件

    1.修改配置文件,建议使用企业邮箱 #vim /etc/gitlab/gitlab.rb gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_a ...

  10. BZOJ1801 [Ahoi2009]chess 中国象棋 动态规划

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1801 题意概括 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮. 请 ...