String 对象

  之前学习的是 基本数据类型 String 类型,现在讨论的是 String对象(包装类型)。

String的特点:字符串的不可变性。

var str = 'abc';
str = 'hello';

    分析上面两行代码,起初给 str 赋值为 'abc'。当重新给 str 赋值的时候,常量 ‘abc’ 不会被修改,依然在内存中。

   重新给字符串赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变。

   注意:由于字符串的不可变,在大量拼接字符串的时候会有效率问题。

创建字符串对象

var str = new String('Hello World');      // 通过构造方法来创建字符串对象

  

常用方法

  注意:字符串的所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串。

  1、字符方法

charAt()                     // 获取指定位置处字符
charCodeAt() // 获取指定位置处字符的 ASCII 码
str[0] // HTML5 的方法,IE8+支持,同 charAt() 方法

  2、字符串操作方法

concat()                     // 拼接字符串,等效于+,+更常用
slice() // 从 start位置开始,截取到 end 位置,end 取不到
substring() // 返回一个字符串在开始索引到结束索引(不包括)之间的一个子集, 或从开始索引直到字符串的末尾的一个子集。
substr(index,length) // 返回一个字符串中从指定位置开始到指定字符数的字符(length省略,到字符串末尾)

  3、位置方法

indexof()                    // 返回调用它的 String 对象中第一次出现的指定值的索引,如果没有,返回 -1
lastIndexof() // 返回指定值在调用该方法的字符串中最后出现的位置,如果没找到则返回 -1,从该字符串的后面向前查找

  4、去除空白

trim()                       // 只能去除字符串前后的空白

  5、大小写转换方法

to(Local)UpperCase()         // 转换为(本地)大写
to(Local)LowerCase() // 转换为(本地)小写

  6、其他方法

search()                     // 返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1
replace(regexp,substr) // 返回一个由替换值替换一些或所有匹配的模式后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值可以是一个字符串或者一个每次匹配都要调用的回调函数
split()                      // 指定的分隔符字符串将一个String对象分割成字符串数组
fromCharCode() // 返回由指定的UTF-16代码单元序列创建的字符串(将 ASCII 码转换为字符串)

  

案例:

  1、查找字符串中所有o出现的位置。

 var s = 'abcoefoxyozzopp';
var array = [];
do {
var index = s.indexOf('o', index + 1);
if (index != -1) {
array.push(index);
}
} while (index > -1);
console.log(array);

  2、把字符串中所有的o替换成!

 var s = 'abcoefoxyozzopp';
var index = -1;
do {
index = s.indexOf('o', index + 1); if (index !== -1) {
// 替换
s = s.replace('o', '!');
}
} while(index !== -1);
console.log(s);

  3、判断一个字符串中出现次数最多的字符,统计出现次数

   var s = 'abcoefoxyozzopp';
var ch;
// 此字符出现的次数
var num;
// 记录字符串中每一个字符出现的次数
var o = {}; for (var i = 0; i < s.length; i++) {
var item = s.charAt(i);
if (o[item]) {
// 已经有该属性,+1
o[item]++;
} else {
// 对象中没有该属性
o[item] = 1;
}
} // 2 求最大值 并且找到次数最多的字符
// 假设最大值是1
num = 1;
for (var key in o) {
if (num < o[key]) {
// 最多的次数
num = o[key];
// 次数最多的字符
ch = key;
}
} console.log(num);
console.log(ch);

  4、获取 url 后面的参数

 // 获取url后面的参数
function getParams(url) {
// 获取? 后面第一个字符的索引
var index = url.indexOf('?') + 1;
// url中?后面的字符串 name=zs&age=18&a=1&b=2
var params = url.substr(index);
// 使用& 切割字符串 ,返回一个数组
var arr = params.split('&');
var o = {};
// 数组中每一项的样子 key = value
for (var i = 0; i < arr.length; i++) {
var tmpArr = arr[i].split('=');
var key = tmpArr[0];
var value = tmpArr[1]; o[key] = value;
}
return o;
}
var url = 'http://www.baidu.com/login?name=zs&age=18&a=1&b=2';
var obj = getParams(url);
console.log(obj); console.log(obj.name);
console.log(obj.age);

JavaScript 之 String 对象的更多相关文章

  1. JavaScript中String对象的match()、replace() 配合正则表达式使用

    正则表达式由来已久,查找替换功能非常强大,但模板难记复杂. JavaScript中String对象的match().replace()这2个方法都要使用正则表达式的模板.当模板内容与字符串不相匹配时, ...

  2. JavaScript中String对象的方法介绍

    1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...

  3. Javascript中String对象的的简单学习

    第十一课String对象介绍1:属性    在javascript中可以用单引号,或者双引号括起来的一个字符当作    一个字符对象的实例,所以可以在某个字符串后再加上.去调用String    对象 ...

  4. Javascript数组,String对象,Math对象,Date对象,正则表达式

    标题栏的滚动<html><head><title>山西众创金融</title></head>function init(){ //1.拿到标 ...

  5. JavaScript:String 对象

    ylbtech-JavaScript:String 对象 1.返回顶部 String 对象 String 对象用于处理文本(字符串). 创建 String 对象的语法: new String(s); ...

  6. JavaScript 字符串(String)对象

    String 对象 String 对象用于处理文本(字符串). 创建 String 对象的语法: new String(s); String(s); 参数 参数 s 是要存储在 String 对象中或 ...

  7. JavaScript的String对象

    1.创建String对象 Html标签的格式编排方法:可以将String对象的字符串内容输出成对应的html标签. 示例: var str = "JavaScript程序设计"; ...

  8. javascript之String对象

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. JavaScript 字符串(String)对象的方法

    anchor() 描述:用于创建 HTML 锚 原型:stringObject.anchor(anchorname) 用法: <script> var txt="Hello wo ...

随机推荐

  1. 如何让wordpress后台搜索只匹配搜索文章标题

    今天编辑小美眉问网站wordpress后台能不能实现只搜索标题,这个问题怎么可能难到ytkah呢?打开Stack Overflow一顿狂搜,总数有解决方案了,哈哈哈!一起来看看怎么操作吧. 打开主题目 ...

  2. springboot2.0整合logback日志(详细)

    <div class="post"> <h1 class="postTitle"> springboot2.0整合logback日志(详 ...

  3. 全面分析:APP中的消息功能设计

    一.定义 APP的“消息”模块,是通过APP或手机这个客户端,围绕某个产品的功能进行交流.沟通的重要方式.这种沟通,一方是运营人员或商家,也可以是产品或系统本身,为方便说明笔者这里姑且统一简称为B端, ...

  4. @Path注解

    最近用到的一个项目,看到Controller控制层.Method方法都是通篇的@Path注解,由于之前并没有使用过该注解,故记此篇. 首先看一下项目中的使用方式: @Path("client ...

  5. python gevent协程

    安装 pip install gevent import gevent from gevent import monkey monkey.patch_all()#捕捉所有阻塞,不止接收gevent.s ...

  6. pyhton2 and python3 生成随机数字、字母、符号字典(用于撞库测试/验证码等)

    本文介绍Python3中String模块ascii_letters和digits方法,其中ascii_letters是生成所有字母,从a-z和A-Z,digits是生成所有数字0-9.string.p ...

  7. 【线段树】【P5522】[yLOI2019] 棠梨煎雪

    C [yLOI2019] 棠梨煎雪 Background 岁岁花藻檐下共将棠梨煎雪 自总角至你我某日辗转天边 天淡天青 宿雨沾襟 一年一会信笺却只见寥寥数言 --银临<棠梨煎雪> Desc ...

  8. K8s预选策略和优选函数简介

    调度器选择策略: 预选策略(Predicate) 1. 根据运行Pod的资源限制来排除不符合要求的Node 2. 根据运行Pod时,是否要求共享宿主机的网络名称空间来判断,如: 某Pod启动要共享宿主 ...

  9. Maven 基本概念——根目录、项目创建、坐标

     1. MavenProjectRoot(项目根目录)   |----src   |     |----main   |     |         |----java ——存放项目的.java文件  ...

  10. vue 实现模块上移下移 实现排序

    效果图 上移 下移 首先想到的是 数组的相互替换嘛 <template> <div> <div class="box" v-for="(it ...