String
一、String
string是原始值(栈stack:先入后出,后入先出)。
1.String 属性
1.constructor
constructor 属性返回对 String 对象属性创建的函数。
2.length 属性
length 属性返回字符串的长度(字符数)。
length可以赋值,但无法改变string.length。
3.prototype
prototype 属性允许您向对象添加属性和方法
function employee(name,jobtitle,born){
this.name=name;
this.jobtitle=jobtitle;
this.born=born;
}
var fred=new employee("Fred Flintstone","Caveman",1970);
employee.prototype.salary=null;
fred.salary=20000;
document.write(fred.salary);
2.String 方法
1.charAt
charAt() 方法可返回指定位置的字符。
字符串的索引也是从0开始!!!!!
<script>
var str = 'abc';
console.log(str.charAt(0),str.charAt(1),str.charAt(2));
</script>
2.charCodeAt
charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。
<script>
var str = 'abc';
console.log(str.charCodeAt(0),str.charCodeAt(1),str.charCodeAt(2));
</script>
3.concat
concat() 方法用于连接两个或多个字符串。
<script>
var str1 = 'abc';
var str2 = 'xyz';
console.log(str=str1.concat(str2));
</script>
4.fromCharCode
fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。
5.indexOf
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
如果没有找到匹配的字符串则返回 -1。
6.includes
includes() 方法用于判断字符串是否包含指定的子字符串。
7.lastIndexOf
lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,如果指定第二个参数 start,则在一个字符串中的指定位置从后向前搜索。
如果没有找到匹配字符串则返回 -1 。
8.match
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
9.replace
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
<script>
var str1= 'there is a string';
var str2= 'there is a string';
var reg = /is/g;
var n = str1.replace('is','are');
var m = str2.replace(reg,'are');
console.log(n,m);
</script>
10.slice
slice(start, end) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
11.split
split() 方法用于把一个字符串分割成字符串数组。
<script>
var str= 'there is a string';
var m = str.split(' ');
console.log(m);
</script>
12.startsWith
startsWith() 方法用于检测字符串是否以指定的子字符串开始。
13.toLowerCase
toLowerCase() 方法用于把字符串转换为小写。
<script>
var str= 'THERE';
var m = str.toLowerCase();
console.log(m);
</script>
14.toUpperCase
toUpperCase() 方法用于把字符串转换为大写。
同上。
15.trim
trim() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、不换行等其他空白符等。
16.valueOf
valueOf() 方法可返回 String 对象的原始值。下面仔细讲解。
17.toString
toString() 方法返回一个表示 String 对象的值。下面仔细讲解。
18.padStart
var m = 7;
console.log(m.toString().padStart(2,'0'));
19.padEnd
从字符串后面添加
3.详解字符串数据类型转换
1.valueOf和toString
<script>
const data = [
{type: '数字', value: 10},
{type: '字符', value: 'jimo'},
{type: '布尔', value: true},
{type: '数组', value: [1,2]},
{type: '函数', value: function(){}},
{type: '对象', value: {a: 10}},
];
for (let i = 0;i < data.length;i ++) {
console.log(data[i].value.valueOf(),data[i].value.toString())
};
</script>
valueOf() 方法可返回对象的原始值。
toString() 方法返回对象的字符串表现形式。
2.String()
console.log(String(null));
console.log(String(undefined));
console.log(String(function(){}));
console.log(String([1,2]));
得:
- 基本数据类型、null、undefined,会转成字符串值。
- 对象:
a. 数组会把括号除去,变成字符串形式。
b.对象为'[object Object]'
,除了日期对象。
c.函数会整体变成字符串形式。