发布时间:2023-05-13 文章分类:WEB开发, 电脑百科 投稿人:李佳 字号: 默认 | | 超大 打印

1.字符串的概述

字符串基础数据类型属于值类型,值类型是不可以改变的。字符串的相关方法是不能改变原本的字符串的,以返回一个新的字符串做为对应的特性。字符串也是一个数据结构(存储结构)数据结构名叫做串(字符串一块组成的一个串),那么他就具备增删改查的方法。

2.字符串的声明创建

//第一种直接赋值(常用)
var str = '哈哈哈' //单引号和双引号都是字符串
​
//第二种使用new关键词(重新开辟内存)
var str = new string('哈哈哈')

注:new String 和 String 的区别

var str = "asdf";
var str1 = String(str);
var str2 = new String(str);
console.log(str1 == "asdf");//true 不会开辟新的内存空间,简单转换,转换的值位于栈上面
console.log(str2 === "asdf");//false 会开辟新的内存空间

Es6新增的字符串模板 ``

var number = 10
var str =`您的年纪是${number}岁`
console.log(str) //您的年纪是10岁

3.字符串的相关方法(不会改变原本字符串的)

查询

1.indexOf(从前到后)

var str = 'abcdefghkabc';
console.log(str.indexOf('abc'));//结果为0,indexOf会返回第一次找到的下标 (从前到后)
console.log(str.indexOf('abc',1));//从下标1开始往后面找,默认是下标0开始

2.lastIndexOf (从后往前)

var str = 'abcdefghkabc';
console.log(str.indexOf('abc'));//结果为9,indexOf会返回第一次找到的下标 (从后到前)
console.log(str.indexOf('abc',5));//从下标5开始往前面找,默认从最后一位开始

3.search (从前到后 不支持指定对应的开始位置 支持正则表达式)

var str = 'abcdefghkabc';
console.log(str.search('abc')); //0
//当前这个正则表示查找abc 全局查找g以及不区分大小写i
var regx = /abc/gi
console.log(str.search(regx)); //0

截取

1.slice

var str = "wodmcs"
var str1 = str.slice(1,3) //str.slice(开始的下标,结束的下标)不包含结束下标位置
console.log(str1) //od
​
var str1 = str.slice()//截取全部
console.log(str1);//wodmcs
​
var str1 = str.slice(-1)//从下标length-1截取到末尾
console.log(str1);//s

2.substring

var str = 'shjdf'
var str1 = str.substring(1) //substring 必须具备开始位置(不支持负值) 结束位置可以写可以不写
console.log(str1) //hjdf

3.substr

var str = 'shjdf'
var str1 = str.substr(1,3) //str.substr(开始位置,截取个数)
console.log(str1) //hjd
​
var str1 = str.substr(1) //从下标1截取到结尾
console.log(str1) //shjdf

连接

concat

//连接方法concat 相当 +
var str = 'hello'
var str1 = str.concat('world')
console.log(str1);

返回

1.charAt (根据下标返回字符串)

// 字符串跟数组一样可以直接通过下标来访问对应的字符
var str = 'hello'
console.log(str[0]); //h 
//根据下标获取对应的字符串
console.log(str.charAt(0));//h

2.charCodeAt (根据下标返回对应字符串的ascii码)

//根据下标获取对应的字符串的ascii码 找不到返回NaN
console.log(str.charCodeAt(0));//返回h的ascii码 104

支持正则的方法 (4个)

1.search 查找下标

var str = 'abcAbcsi'
var index = str.search(/abc/gi) //search 查找 根据正则查找对应的下标 找不到返回-1(类似于indexOf)(number)
console.log(index);//0

2.split 分割

var str = 'abc,Abc,Ab'
var splitArray = str.split(/,/gi) //split 分割的方法 将对应的字符串分割成对应的数组 (Array)
console.log(splitArray);

3.match 匹配

var str = 'abc,Abc,Ab' //match 匹配的 将匹配的内容(如果没有g没有只匹配第一个填入)填充到对应的数组返回 (Array)
var matchArray = str.match(/abc/gi)
console.log(matchArray);

4.replace 替换

var str = 'abc,Abc,Ab'
var newStr = str.replace(/abc/gi,'hello')//只会替换第一次找到的 (如果对应的正则里面有g那么
全部替换否则只替换第一次找到的)
console.log(newStr);//如果没有全局 那么只会替换一次 有的话会全部替换

其他的辅助方法

1.trim 去除前后空格(中间空格去不了)

// trim 去除前后空格
var str = ' a b '
var str1 = str.trim()
console.log(str1);

2.toUpperCase 转大写

var str = 'abcABcd'
var str1 = str.toUpperCase()//转大写
console.log(str1); //ABCABCD

3.toLowerCase 转小写

var str = 'abcABcd'
var str1 = str.toLowerCase()//转小写
console.log(str1); //abcabcd

4.fromCharCode 静态方法 将ascii码转为字符串(使用类名.对应的方法 调用 使用static进行修饰)

//静态方法 使用对应的类名直接点 使用static进行修饰的 fromCharCode
var newStr = String.fromCharCode(97,98,99) //将ascii码变成字符串
console.log(newStr);//abc

重点:

1.字符串是基础值类型,不能被更改。

2.字符串的length属性是只读的,不能更改。

3.字符串的方法都是以返回一个新的字符串为基准,原本字符串不会受影响。

4.支持正则的方法4个 search ,match ,split,replace

5.字符串的截取方法 slice ,substring ,substr

6.indexOf根据对应的字符串获取对应的下标 ,charAt是根据下标来获取对应的字符串。

7.字符串转大写的方法 toUpperCase,toLowerCase

Math类

概述:Math类是用于数学运算的。他里面的属性及相关的方法都是静态的(方便调用)。

属性 property:

PI 圆周率Π E 科学计数法

方法 function:

Math.max 最大值 Math.min 最小值 Math.pow 幂次方 Math.sqrt 开平方 Math.ceil 向上取整 * Math.floor 向下取整 * Math.round 四舍五入 * Math.random 取随机数(0-1随机数 包含0不包含1)* Math.abs 取绝对值