javascript 字符串

字符串定义

1.字符串是javascript的一种数据类型 用"" ''(双引号和单引号)括起来的就是字符串
2.两种定义方式

//直接赋值 常用

var str = 'str'

var str1 = 'hello'

//var 变量 = 字符串值

//使用new 关键字定义

var strObj = new String(true)

通过直接赋值的形式是基本数据类型 通过new关键词是对象类型(引用数据类型)

var strA = new String(10)

var strB = new String("10")

var strC = '10'

var number = 10

 console.log(strA == strC);//true 

 console.log(strC == strB);//true

console.log(strA == strB);//false str1的对象值和str2的对象值是否一致 不一致

//其实是俩个对象 strObj1是一个对象 strObj2又是一个对象 这俩个对象不是一个对象

 console.log(strC == number);//true

 console.log(strC === number);//false

 console.log(strA === strC);//true

console.log(strA == number)//true  因为strA转为number类型 10 == 10

 总结

1.使用直接赋值 字符串的形式给定当前变量为基本数据类型

2.使用new String()进行定义的形式 构建是引用类型的对象 new String()里面的参数可以是任意类型 最后都会调用toString方法转为String

3.如果不使用new关键词 等于没有开辟新的内容来存储引用也就是当前的类型不是对象类型(是基本对象类型) 而如果使用了new关键词 等于开辟了一个新的内存空间存储 那么就是对象类型

字符串属性

1数组是以一个容器 字符串也是一个容器

2.length属性 计算字符串的长度 一个字符为一个位置

3.也可以通过下标获取对应的字符 下标也是从0开始到length-1结束

4.数字是可变 字符串是不可变的(是常量 不能修改的量)

5.数组的length属性是可以修改的 字符串的length只能获取不能修改

6.字符串增删改查方法 不能操作原本的字符串 只能返回一个新的字符串

7.不能通过length改变字符串的长度 不能通过下标赋值来改变字符串(类型于只读变量)

字符串的常用方法

1.常用的查询方法

var str = 'abc'

str[0] // 获取a

str.charAt(0)//等同于 str[0]

str.charCodeAt(0) // 获取下标为0位置的字符a的ascii码

String.fromCharCode(100) //将ascii码反转为字符(解码)

//fromCharCode是静态方法 利用内置对象.对应的方法 这个方法为内置的静态方法

//类似的还有Math.pow

str.indexOf('a')//返回number值 根据字符串来返回对应的第一次出现的下标,找不到返回-1

str.lastIndexOf('a')//这个是从后往前找  第一个参是要找的值 第二个参是下标几开始找

还是查询方法

str.search()//可以传入string和正则表达式

1.str.search('abc')//传入为string类型的时候 根据你传入的参数进行对比 返回第一次对比成功的下标 如果没有返回-1

2.var reg = / /

//正则表达式用/ /包起来 /abc/ 匹配abc的正则

//reg = / ^abc$/ 表示要以a开头c结束的字符串

//reg = /[abc]/  [] 表示其中一个 这里表示 a b c其中一个

//reg = /[ab]{2}/ {}表示个数 这里表示可以匹配 aa ab bb ba 这个四个

//reg = / [a]+/ +表示一个或者多个 这里表示可以匹配 a aa aaa aaaa....

//reg =  /[A-Za-z1-9]/[]还可以表示区间 但必须是正的区间 这里表示匹配大小写字母和1-9的数字

 // \w表示字母数字及下划线 \W相反 除了字母数字及下划线其他都匹配

// \s 空白字符 \S 非空白字符

str.search(reg)

传入正则表达式

替换方法 

替换匹配的值 变成另外一个值 返回一个新的字符串 

var str = 'ababababa'

var newStr = str.replace('a','c')//两个值第一个是要替换的值 第二个是替换的内容

//将a 替换为c 这里只能运行 他只会找到第一个a 将a替换为c

//replace 只会找到第一个匹配的 将他替换为指定的字符串

 替换所有

//利用for循环 if判断和每次 给字符串重新赋值 知道查找不到我们要的替换的

for(var i=0;i<str.length;i++){

        if(str.search('a')!=-1){ //查找是否还有a 找不到为-1 不为-1就是还有

                str=str.replace('a','c')//每次替换重新赋值

        }else{

                break;

                }

}

 截取方法

返回新的字符串

var str = "abcdefg";

var newStr = str.substring(1, 3); //开始位置下标 截取到结束位置下标 不包含结束位置[1,3)和slice 一样

 console.log(newStr); //bc

分割方法 

分割为数组    数组的join连接成字符串

 var str = "a,b,cd,e";

//可以根据正则截取 返回值为string类型数组

var strArr = str.split("c"); //根据,来进行分割

 console.log(strArr);

var strArr = str.split(",", 2); //limit表示数量

 //不写表示所有的全部填入数组 写上去就是填入指定个数的元素到数组(从前往后填入)

console.log(strArr);

 转大写 转小写 是全部转换

var str = "ABccddEF";

var str1 = str.toLowerCase();

console.log(str1); //转小写

var str2 = str.toUpperCase();

console.log(str2); //转大写

 Math方法

// Math 数学他有一系列数学计算的函数(静态函数)

        // 静态属性 Π

        console.log(Math.PI);

        //科学计算 E

        console.log(Math.E);

        //关于Math的静态方法

        // 求大小 max 最大值  min最小值

        console.log(Math.max(1,2)); //返回2

        console.log(Math.min(1,2)); //返回1

        //关于取整的几个方法

        // 向下取整 3.9 3

        console.log(Math.floor(3.9)); //3

        // 向上取整 3.1 4

        console.log(Math.ceil(3.1)); // 4

        // 四舍五入 3.1 返回3 3.9返回4

        console.log(Math.round(3.5)); //4

        console.log(Math.round(3.4)); //3

        //幂次方

        console.log(Math.pow(1,10)); //1的10次方 1

        console.log(Math.pow(2,3)); //2的3次方 8

        //开平方/1

        console.log(Math.sqrt(9)); //3

        //随机数

        console.log(Math.random()); //随机生成0-1的数 不包含1 包含0(没有1 有0) (随机数没有均衡随机)

        // 去绝对值 -1 是 1 永远是正数

        console.log( Math.abs(-1));

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值