JavaScript字串符

1.字符串的介绍及字符串声明的两个方式

定义方式

var 变量 = 字符串值

使用new 关键字定义

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

var strobj = new String//(true)返回的是一个字串符
var strobj1 = new String('hello world')//返回的是一个字符串
console.log(strobj)//(true)转true为字符串 存入对应的是strobj变量
console.log(strobj1)//('hello world')

字符串是JavaScript的一种数据类型 用"" ''括起来的就是字符串(基本数据类型)

  var str = 'str'
   var str1 = "hello"
  console.log(str);
   console.log(str1);

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

使用new String() 进行定义的形式 构建是引用类型的对象

new String()里面的参数可以是任意类型 最后都会调用toString方法转为String类型

如果不使用new关键词 等于没有开启新的内容来存储引用也就是当前的类型不是对象类型 基本数据类型

而使用了new关键词 等于开辟了一个新的内存空间存储 那么类型就是对象类型

2.字串符的属性

数组是一个容器,字符串也是一个容器

length属于,计算字符串的长度, 一个字符为1个位置

var str = '123'
console.log(str.length)//3 长度为3
​
 //练习
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
        console.log(strC == number);//true
        console.log(strC === number);//false
        console.log(strA === strC);//false
        console.log(strA == number);//true 因为strA转为number类型 10 == 10

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

数组是可变 字符串是不可变的

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

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

字符串不能改 因为他是常量 不能修改的量 (只读变量)

不能通过length改变字符串的长度 不能通过下标赋值来改变字符串

3.字符串的常用方法

字符串是一个容器,所有对应的存在增删改查的方法

但是由于字符串是只读 增删改的方法是不会修改原本的字符串 而是以返回一个新的字符串

查询对应的字符,相当于字符串的下标获取

var str = 'abc'
 console.log(str[0]);//获取a
        //通过charAt方法来获取 返回的是字符串  根据下标来获取字符串
 console.log(str.charAt(0));//获取a str.charAt(0) 等同于 str[0]
        //获取ascii码 获取对应下标位置的字符的ascii码
 console.log(str.charCodeAt(0)) //97 获取下标为0位置的字符a的ascii码
 console.log(str.charCodeAt(1)) //98 获取下标为1的位置的字符b的ascii码

将ascii反转为字符

100 的字符为d fromCharCode静态方法 利用内置对象.对应的方法 这个方法为内置的静态方法

Math.pow 也是静态方法

fromCharCode 根据ascii转换为对应的字符串 ascii码解码为字符串

var codeStr = String.fromCharCode(100)
   console.log(codeStr); //d

indexOf 根据字符串来返回对应的第一次出现的下标 找不到-1

    console.log(str.indexOf('a')); //0
​
   console.log(str.indexOf('a',1)); //-1
​
    var str1 = 'abca'
​
    console.log(str1.indexOf('a')); //0
​
    console.log(str1.indexOf('a',1)); //3

lastIndexOf 根据字符串返回第一个出现的下标 从后往前找

 console.log(str1.lastIndexOf('a'));//3
​
 console.log(str1.lastIndexOf('a',1));//0

4.search及正则讲解

查询方法

var str = 'cbacbaabc'
//查询方法 返回第一个匹配的位置 返回的为当前找到的下标
 //如果找不到返回 -1
var n = str.search('abc')
console.log(n)//返回值为6
var n = str.search('ddd') 
console.log(n); //找不到返回-1
//传入为string类型的时候 根据你传入的参数进行对比 返回第一次对比成功的下标 如果没有返回-1

Regxp正则对象,一般以两个//包起来

var str = 'cbacbaabc'
var reg =/abc/ //正则对象
console.log(str.seach(reg))//返回为6
 // 什么是正则表达式 正则表达式是一个用于匹配的表达式 他可以用来匹配任意的字符串
 // RegExp为正则对象 一般的正则表达式以// 包起来 里面书写就是对应匹配的正则表达式
 // /abc/ 匹配 abc的正则

正则表达式的常用内容

^表示开头 $表示结尾

 var str = 'cbacbaabc'
 var reg = /^abc$/
 var str = 'cbacbaabcabc'
 console.log(str.search(reg));//查找正则匹配的abc出现第一次出现的位置 -1
 var str = 'abc'
 console.log(str.search(reg));//返回0

5.replace替换的用法

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

var str = 'ababababa'
//将所有的a替换为c
var newstr = str.replace('a','c')//cbababab将a替换为c,这里只能运行一次,只会找到第一个a
console.log(newstr)//cbababab
​
//循环遍历 indexof 找到第一个下标 如果没有找到返回-1
for(var i=0;i<str.length;i++){
    if(str.indexof('a')!=-1){
        str = str.replace('a','c')//进行替换黄替换的数据设置给对应的字符串
    }else{//里面没有a就退出
        break
    }
        
}console.log(str)//cbcbcbcbc

replace也同样支持正则

参数1位对应的搜索条件(支持string或者正则),参数2为替换的内容

replace在search的基础上做替换

6.substring截取的用法

// 截取方法 返回新的字符串
        var str = 'abcdefg'
        var newStr = str.substring(1,3) //开始位置下标 截取到结束位置下标 不包含结束位置
        console.log(newStr); //bc

7.split分割的用法

//分割方法 分割为数组  数组的join连接成字符串
        var str = 'a,b,cd,e'
        //可以根据正则截取 返回值为string类型数组
        var strArr = str.split(',') //根据,来进行分割
        console.log(strArr);
        var strArr = str.split(',',2) //limit表示数量  
        //不写表示所有的全部填入数组 写上去就是填入指定个数的元素到数组(从前往后填入)
        console.log(strArr);

8.大小写转换的用法

var str = 'ABccddEF'
        var str1 = str.toLowerCase()
        console.log(str1); //转小写
        var str2 = str.toUpperCase()
        console.log(str2); //转大写
        //其他对应的string方法是后面es6以后加强的方法 

9.Math

数学对象,关于数学运算的属性和方法

Math.PI

Math.floor()

Math.ceil()

Math.round()

Math.pow()

Math.sqrt()

Math.abs()

Math.random()

生成一个min~max的随机数

Math.random() * (max - min) + min

10.Date

获取系统时间以及对日期做一些操作

获取当前日期 new Date()

时间戳:从1970年到当前日期对象总的毫秒数

11.获取系列API

getFullYear()

getMonth() 0~11

getDate()

getDay() 0~6星期

getHours()

getMinutes()

getSeconds()

getTime() 获取时间戳

12.设置系列API

获取用get系列,设置换成set即可,但是day星期几能设置

如果设置传了超过正常日期的参数,会自动计算

转换字符串

toLocaleString() 转换为当地字符串

toUTCString() 转换为标准时区字符串

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值