JavaScript学习笔记之string
字符串定义:
1,var myString=“内容”;or var myString=‘内容’
2,var myString= new String(“内容”) ---〉创建对象,但是会增加开销
内容:
1,在双引号(单引号)里加入单引号(双引号)不需要转义,如果在双引号(单引号)里加双引号(单引号)则需要

2,字符串默认只能利用一行进行定义不可换行,如需要分成多行,可以利用 \ 在换行前进行设置;(老式浏览器不支持)
3,常用转义序列:
| \t | 制表符 |
| \n | 换行,在字符里插入一个换行 |
| \" | 双引号 |
| \' | 单引号 |
| \\ | 反斜线 |
| \x99 | ASCII字符的值,以2位16进制表示 |
| \u9999 | 统一编码字符的值,以4位16进制表示 |
4,字符与数组(相同点)
字符串可以像数组一样拿来操作:

也可以拿字符串直接操作:

若[]里面的值,不是数字,或者超出范围,或者使用字母:

字符串与数组的相似性仅以上内容,字符串是类似数组的对象,无法改变字符串之中的单个字符。字符串也无法添加新属性。
字符串内部的单个字符无法改变和增删。length属性(从1开始算)返回字符串的长度,该属性也是无法改变的。但是不会报错
解析:
在JavaScript内部,变量s其实指向字符串“Hello World”的地址,而“Hello World”本身是一个常量,所以无法改变它,既不能新增,也不能删除。

另一方面,当一个字符串被调用属性时,它会自动转为String对象的实例,调用结束后,该对象自动销毁。这意味着,下一次调用字符串的属性时,实际是调用一个临时生成的新对象,而不是上一次调用时生成的那个对象,所以取不到赋值在上一个对象的属性。如果想要为字符串添加属性,只有在它的原型对象String.prototype上定义
5,base64编码
- btoa():字符串或二进制值转为Base64编码
- atob():Base64编码转为原来的编码
字符传递:
若要给函数传递字符不能使用“”双引号传递,而是要用‘’单引号传递,使用“”会难以操作。
为函数传递number时可以不加引号,但是传递字符一定要加引号,否则会出现未定义的错误。
字符连接:
使用+对字符进行组合 string1+string2。
String 对象:
String对象的实例是一个类似数组的对象。
String还可以当作工具方法使用,将任意类型的值转为字符串。
String.fromCharCode():String对象直接提供的方法,主要是fromCharCode()。该方法根据Unicode编码,生成一个字符串。
length属性:该属性返回字符串的长度

charAt()方法:该方法返回一个指定位置的字符(从0开始),但是此方法可以用数组下标代替


charCodeAt()方法:该方法返回给定位置字符的Unicode编码(十进制表示)
concat()方法:用于连接两个字符串。使用该方法后,原字符串不受影响,返回一个新字符串。可以接受多个字符串 但是,一般来说,字符串连接运算还是应该使用加号(+)运算符比较好。


substring()方法,slice方法,substr方法:这三个方法都用来返回一个字符串的子串,而不会改变原字符串。它们都可以接受一个或两个参数,区别只是参数含义的不同。
substring(起始位置(带上字符),终止位置(不带上字符)):如果出现第一个参数大于第二个参数的情况,substring方法会自动更换两个参数的位置。

slice(起始位置(带上字符),终止位置(不带上字符)):如果第一个参数大于第二个参数,slice方法并不会自动调换参数位置,而是返回一个空字符串。

substr(起始位置(带上字符),取多少个字符):第一个参数是子字符串的开始位置,第二个参数是子字符串的长度。

负数:
对于substring方法,会自动将负数转为0。
对于substr方法,负数出现在第一个参数,表示从尾部开始计算的字符位置(length+负值);负数出现在第二个参数,将被转为0。
对于slice方法,表示字符位置从尾部开始计算。(length+负值)
indexOf()方法:用于确定一个字符或多个字符在字符串中的位置,从头部开始匹配,若有第二个参数表示从哪个位置开始找(从0开始),不匹配返回-1

lastIndexOf()方法:用于确定一个字符或多个字符在字符串中的位置,从尾部开始匹配,若有第二个参数表示从哪个位置开始找(从0开始),不匹配返回-1

trim()方法:此方法用于去除字符串两端的空格

toLowerCase()和toUpperCase()方法:分别是把字符串转变为小写字母和大写字母
localeCompare()方法:比较字符串:string1=string2,返回0。string1>string2,返回1。string1<string2,返回-1。这个比较不同于我们平常的数字大小比较,也不是比较字符串谁长。而是一位一位的比较,若第一位相等,则比较第二位,只要第二位比较出大小就不用继续往下比较,直接得出大小,所以js的比较大小是一位一位的比较的:

替换和搜索(重要,常用):
match()方法:搜索字符串中是否有匹配的字符串
match方法返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回null。
返回数组还有index属性和input属性,分别表示匹配字符串开始的位置(从0开始)和原始字符串。

search()方法:直接返回index,开始的第一个位置,如果没有找到匹配,则返回-1。不可遍历

replace()方法:替换字符,replace(旧,新),默认只更改第一个检索到的字符。

利用正则表达式可以使所有的字符都改变:

split()方法:分割字符串split("按照什么条件来切割"),把字符保存到数组里,返回一个新数组。可以接受第二个参数,限定返回数组的最大成员数(可以利用这个方法使字符串转化为数组)

如果满足分割规则的部分处于字符串的开头或结尾(即它的前面或后面没有其他字符),则返回数组的第一个或最后一个成员是一个空字符串。
字符串与数值之间的转换:
parseInt(string,使用多少进制解析): 字符串转化为int类型;
parseInt函数在转换字符串的时候,跟多看的是是否符合数值模式。会忽略子字符串前面的空格,直至找到第一个非空格字符。
如果第一个空格不是数字字符或者负号(-),会返回NaN
若遇到第一个字符是数值或负号,会一直解析到第一个非数值数据为止
为了避免解析错误,建议无论在什么情况下都明确指定解析基数
parseFloat(string): 字符串转化为float类型;
只解析10进制数,所以没有第二个参数。
第一个小数点有效,第二个小数点会被忽略
16进制的字符串会被解析为0
toString(number):数值转化为字符串;
数值,布尔值,对象,字符串值都有toString()方法,但是null和undefined没有这个方法
多数情况下调用toString方法不需要传递参数,但是调用数值的toString方法时,可以传递一个参数(输出数值的基数),默认情况是传递10进制
String()方法:在不知道要转换的值是不是null或者undefined的情况下还可以使用转型函数String
这个函数可以将任何类型的值转化为字符串。
参考链接:http://javascript.ruanyifeng.com/stdlib/string.html
JavaScript学习笔记之string的更多相关文章
- javascript学习笔记(四) Number 数字类型
数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数 toExponential() 方法 用科学 ...
- Java程序猿JavaScript学习笔记(2——复制和继承财产)
计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...
- Java程序猿JavaScript学习笔记(14——扩大jQuery UI)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- JavaScript学习笔记之数组(二)
JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...
- JavaScript学习笔记[0]
JavaScript学习笔记[0] 使用的是廖雪峰JavaScript教程. 数据类型 Number 表示数字,不区分浮点整形. === 比较时不转化数据类型. == 反之. NaN与任何值都不想等, ...
- JavaScript:学习笔记(2)——基本概念与数据类型
JavaScript:学习笔记(2)——基本概念与数据类型 语法 1.区分大小写.Test 和 test 是完全不同的两个变量. 2.语句最好以分号结束,也就是说不以分号结束也可以. 变量 1.JS的 ...
- Java程序猿的JavaScript学习笔记(9—— jQuery工具方法)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿的JavaScript学习笔记(5——prototype和Object内置方法)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- JavaScript:学习笔记(10)——XMLHttpRequest对象
JavaScript:学习笔记(10)——XMLHttpRequest对象 XHR对象 使用XMLHttpRequest (XHR)对象可以与服务器交互.您可以从URL获取数据,而无需让整个的页面刷新 ...
随机推荐
- [原创]Centos7 从零编译Nginx+PHP+MySql
序言 这次玩次狠得.除了编译器使用yum安装,其他全部手动编译.哼~ 看似就Nginx.PHP.MySql三个东东,但是它们太尼玛依赖别人了. 没办法,想用它们就得老老实实给它们提供想要的东西. 首先 ...
- ZoomEye 钟馗之眼 搜索工具 基于API
#!/usr/bin/env python # -*- coding: utf-8 -*- # Author: f0rsaken import getopt import requests impor ...
- VBA实例收集
1.工作表事件:固定制定区域激活,使之不能选择其他区域. Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target. ...
- (转)java自带线程池和队列详细讲解 - CSDN过天的专栏
一简介 线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的.在jdk1.5之后这一情况有了很大的改观.Jdk1.5之后加入了java.util ...
- ShowMessageFmt 用法
举例:ShowMessageFmt('n1:%x; n2:%x', [n1,n2]); 显示Params 为 array[integer] of TvarRec 进制表示 %o(8) print ...
- Blend打不开wpf项目,提示无法识别的工具版本“12.0”
讲项目文件用记事本打开然后修改为“14.0”即可
- servlet jsp jdbc bootstrarp mvc分层模式实现的第一个项目
登录注册界面 这是一个注册和登录的界面 用到了前端页面中自带的一点H5的标签和属性---巩固下 邮箱格式 :type="email" 不能为空: required=" ...
- HDU5909 Tree Cutting(树形DP + FWT)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5909 Description Byteasar has a tree T with n ve ...
- 半吊子学习Swift--天气预报程序-准备工作
MacBookPro买完快半年了,当初想着买个本本学点ios,买完就看了几天的教程[捂脸],最近发现人都要废了,想重新开始学习Swift并将每天的进程通过博客发布来督促自己. 由于文笔不好,接触Swi ...
- Android 学习笔记之二——开启闪光灯
今天想写个手电筒应用,看网上的代码基本都是如下: camera = Camera.open(); parameters = camera.getParameters(); parameters.set ...