Javascript基础系列之(三)数据类型 (字符串 String)
javascript一共有9种数据类型
- 字符串 String
- 数值型 Number
- 布尔型 Boolean
- 未定义 Undefine
- 空值 Null
- 对象 Object
- 引用Refernce
- 列表型 List
- 完成型 Completion
一.字符串
var language = "javascript";
var language = 'javascript';
字符串可以使用双引号和单引号,根据个人爱好而定。
字符串具有length属性,可以返回变量中字符串的个数。
var test1 = "teacher" ;
document.write(test1.length);
//输出test1的字符串个数:7
反之,想获取指定位置的字符,可以使用charAt()函数(第一个字符为0,第二个字符为1,依次类推)
var test1 = "teacher" ;
document.write(test1.charAt(1));
//运行结果为:e ,
如果想取得变量中的字符串,可以采用slice(),substring()或者substr()函数。
其中,substring()和slice()都接受两个参数
var test1 = "teacher" ;
document.write(test1.substring(1)+"<br>");// 输出eacher
document.write(test1.substring(1,4)+"<br>"); //输出eac
document.write(test1.slice(1,4)+"<br>"); //输出eac
document.write(test1.slice(4)+"<br>"); //输出her
document.write(test1 + "<br>");//完整字符串
从以上内容看出,substring()和slice()都不改变字符串内容,只返回字符串的内容。
substing()和slice()的区别主要是对负数的处理不同。
负数参数对于slice()而言,从字符串末尾往前计数,对于substring()来说,则是忽略负数,从0开始处理,并将两个参数中较小的数字作为起始位,较大的作为结束位。
例如substring(2,-3)等同于substing(2,0),也就是等同于substring(0,2)。
var test1 = "teacher" ;
document.write(test1.substring(2,-3)+"<br>"); //te
document.write(test1.substring(2,0)+"<br>"); //te
document.write(test1.substring(0,2)+"<br>"); //te
document.write(test1.slice(2,-3)+"<br>"); //ac
document.write(test1 + "<br>"); //teacher
substring()和substr()的区别,举例说明。
var tt,ss ;
var s = "hellobeijing";
tt = s.substring(2,8)+"<br>";
ss = s.substr(2,8);
document.write(tt);//输出:llobeij 输出下标2到下标8之间的字符
document.write(ss); //输出:llobeiji (输出下标2后的8个字符)
对于用法,另一博友有更多实例(地址)
在搜索字符串上,Javascript提供了indexof()和lastindexof()两个函数。
var s = "woaibeijing";
dd = s.indexOf("e")+"<br>";//从前往后
ee = s.indexOf("e",3)+"<br>";//可选参数,从第几个字符往后查找
ff = s.lastIndexOf("e")+"<br>";//从后往前
gg = s.lastIndexOf("e",3)+"<br>"; //可选参数,从第几个字符往前查找
hh = s.lastIndexOf("H")+"<br>";
document.write(dd);
document.write(ff);
document.write(ee);
document.write(gg);
document.write(hh);
另外,indexof()和lastindexof()的用法推荐查看这篇文章。http://blog.163.com/liyali1855@126/blog/static/369102712012102734222325/
JS中的indexOf和lastIndexOf是处理字符串的一个非常好用的函数,下面对它们的定义、用法、注意事项以及使用建议分别作介绍。
1、strObj.indexOf(subString[, startIndex])
功能:返回源字符串内第一次出现指定子字符串的首个字符在源字符串中的索引值(源字符串内第n个字符的索引值为n-1),是整数。
参数含义:
strObj是源字符串,必选项。
subString是在源字符串对象中查找的子字符串,必选项。
startIndex是开始索引值,indexOf函数是从源字符串的索引值为startIndex的字符(即第startIndex+1个字符)开始查找,可选项。省略时,从源字符串索引值为0的字符(即第1个字符)开始查找。
实例分析:
用法1(不指定startIndex值):var i="huoshandao.com".indexOfOf("a"):则i=5
相当于var i="huoshandao.com".indexOf("a",0)
用法2(指定startIndex值):var i="huoshandao.com".indexOf("a",6):则i=8
提示:可以用alert(i);语句测试结果,以下例子也一样。
注意事项
1)strObj既可以是字符串,也可以是字符串变量。
[例子]
strObj为字符串:var i="huoshandao.com".indexOf("."):
strObj为字符串变量:var str="huoshandao.com";var i=str.indexOf(".");
2)subString不能为空字符串,如果为空字符串,返回值为0,但可以是空格。
[例子]
subString为空字符串:var i="huo shan dao".indexOf(""):则i=0
subString为空格字符串:var i="huo shan dao".indexOf(" "):则i=3
3)第1个字符的startIndex值是0,是最小索引值;第2个字符的startIndex值是1;最后一个字符的startIndex值则是源字符串长度减1,是最大索引值。
4)如果没有找到子字符串,则返回 -1。
[例子]
var i="huoshandao.com".indexOf("huosan"):则i=-1
5)如果startIndex是负数,则相当于startIndex等于0的情况。如果它大于最大索引值,则相当于startIndex等于最大索引值的情况。
[例子]
startIndex为负数: var i="huoshandao.com".indexOf(".",-3);则i=10
与var i="huoshandao.com".indexOf(".",0);结果一样
startIndex大于等于字符串长度:var i="huoshandao.com_".indexOf("_",16);则i=-1
与var i="huoshandao.com_".indexOf("_",14);i=14
2、strObj.lastIndexOf(subString[, startIndex])
indexOf 函数是从左向右查找,但实际应用中我们有时想得到从右向左出现某个字符或字符串的首个字符索引值,针对这种情况,JS给出另外一个函数 lastIndexOf来解决这个问题,使用方法和indexOf相似,只是它从右向左查找而已,具体就不再重复,简单举几个例子,和indexOf作比 较:
例1:var i="huo.shan.dao.com".lastIndexOf(".");则i=12而var i="huo.shan.dao.com".indexOf(".");的i=3
例2:var i="huoshandao.com_".lastIndexOf("_",16);则i=14而var i="huoshandao.com_".indexOf("_",16);则i=-1
3、使用建议
为了避免出乎意料的结果,除非有特殊用途,建议遵循以下原则:
1、startIndex为非负数,并且不大于最大索引值。如果startIndex是变量,要先判断其值是否在这个范围内。
2、如果子字符串subString是变量的话,要先判断其是否为空再使用indexOf或lastIndexOf函数。
3、输入子字符串时要特别注意全角字符和半角字符的区别。
4、注意indexOf和lastIndexOf里面的大小写,JS对大小写非常敏感。建议用Dreamweaver编程,如果函数名大小写写错的话,函数颜色是黑色,写对的话则会变成另外一种颜色。
Javascript基础系列之(三)数据类型 (字符串 String)的更多相关文章
- 【JavaScript基础系列】决定你的人生能走多远的,是基础。
前言 javaScript门槛非常低,一点语法,一个dom,一个bom就可以使用它开发大部分js应用,再加上现在层出不穷的框架极大的简化抽象了javaScript的使用方式,但是我们始终不能忘记的一点 ...
- JavaScript基础系列
JavaScript基础系列 JavaScript是一种基于对象和事件驱动的客户端脚本语言. JavaScript的注释 // 单行 /**/ 多行注释 JavaScript变量,函数名和操作符都是区 ...
- Java基础系列2:深入理解String类
Java基础系列2:深入理解String类 String是Java中最为常用的数据类型之一,也是面试中比较常被问到的基础知识点,本篇就聊聊Java中的String.主要包括如下的五个内容: Strin ...
- Javascript基础回顾 之(三) 面向对象
本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...
- Vue基础系列(三)——Vue模板中的数据绑定语法
写在前面的话: 文章是个人学习过程中的总结,为方便以后回头在学习. 文章中会参考官方文档和其他的一些文章,示例均为亲自编写和实践,若有写的不对的地方欢迎大家和我一起交流. VUE基础系列目录 < ...
- ShoneSharp语言(S#)的设计和使用介绍系列(6)— 字符串String
ShoneSharp语言(S#)的设计和使用介绍 系列(6)— 字符串String 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneS ...
- 深入理解javascript函数系列第三篇——属性和方法
× 目录 [1]属性 [2]方法 前面的话 函数是javascript中的特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样.甚至可以用Function()构造函数来创建新的函数对象.本 ...
- 深入理解javascript函数系列第三篇
前面的话 函数是javascript中特殊的对象,可以拥有属性和方法,就像普通的对象拥有属性和方法一样.甚至可以用Function()构造函数来创建新的函数对象.本文是深入理解javascript函数 ...
- Python学习系列(三)(字符串)
Python学习系列(三)(字符串) Python学习系列(一)(基础入门) Python学习系列(二)(基础知识) 一个月没有更新博客了,最近工作上有点小忙,实在是没有坚持住,丢久又有感觉写的必要了 ...
随机推荐
- 用SecureCRT在windows和CentOS间上传下载文件
安装lrzsz: # yum -y install lrzsz 现在就可以正常使用rz.sz命令上传.下载数据了 配置SecureCRT的session选项的SFTP标签页和X/Y/Zmodem中的目 ...
- Cassandra 分布式集群
1 实施Cassandra集群,并验证集群功能正常,抓图实验过程 2 为什么说对于布隆过滤器有"确定某个元素是否在某个集合中的代价和总的元素数目无关"?误判率和元素数目有关吗?为什 ...
- 我的vim配置文件.vimrc
我的vim配置文件.vimrc map <silent> <F10> :TlistToggle<cr>map <silent> <F8> : ...
- 边工作边刷题:70天一遍leetcode: day 71-2
One Edit Distance 要点:有两种解法要考虑:已知长度和未知长度(比如只给个iterator) 已知长度:最好不要用if/else在最外面分情况,而是loop在外,用err记录misma ...
- bzoj-3170 3170: [Tjoi 2013]松鼠聚会(计算几何)
题目链接: 3170: [Tjoi 2013]松鼠聚会 Time Limit: 10 Sec Memory Limit: 128 MB Description 有N个小松鼠,它们的家用一个点x,y表 ...
- Debian安装中文输入法
简单暴力: apt-get install ibus-pinyin 你也可以通过GUI下面到Synaptic Package Manager里面选中ibus-pinyin进行安装 安装完成后重启计算机 ...
- UVA 11573 Ocean Currents --BFS+优先队列
采用优先队列做BFS搜索,d[][]数组记录当前点到源点的距离,每次出队时选此时eng最小的出队,能保证最先到达的是eng最小的.而且后来用普通队列试了一下,超时..所以,能用优先队列的,就要用优先队 ...
- sql 入门经典(第五版) Ryan Stephens 学习笔记 (第一,二,三,,四,五章)
SQL - Structured Query Language (结构化查询语言) 1/ SQL 命令的类型 : 数据定义语言: DDL 数据操作语言: DML 数据查询语言: DQL 数据控制语言 ...
- java 20 -1 递归的概述和案例
/* * 递归:方法定义中调用方法本身的现象 * * 方法的嵌套调用,这不是递归. * Math.max(Math.max(a,b),c); * * public void show(int n) { ...
- 转: java学习路线图
http://www.java1234.com/javaxuexiluxiantu.html