字符串内置功能(需要的时候直接搜 w3cshool)
var str = "hello"
document.write(str.big())//原字符串不会改变
document.write(str.link("https://www.baidu.com/"))//创建a标签 链接(herf)
document.write(str.anchor("www.baidu.com"))//创建a标签 描点(name) 不是链接(herf)
document.write(str.big().bold())//连续调用
document.write(str.fontcolor("blue"))//颜色
比较重要
var str="hello"
document.write(str.toUpperCase())//字符串转大写
document.write(str.toLowerCase())//字符串转小写
//实现首字母大写功能
String.prototype.capUppserCase = function() {
var re = this[0].toUpperCase()
for (var i = 1; i < this.length; i++) {
re += this[i]
}
return re
}
var a = str.capUppserCase()
console.log(a)
最重要
var str="hello"
document.write(str.substr(0,3))//截取字符型 第一个参数为从哪个开始(取下标 可以为负数 负数就倒着往前面数) 第二个参数表示截取几个
document.write(str.substring(1,3))//取(1,3]区间的字符串 可以为负数 不是下标
document.write(str.split("")) //字符串截子串 一个参数 以什么符号去分隔字符串 返回数组
document.write(str.slice(1,4))//和substring同理
document.write(str.indexOf("h",0))//返回子串出现的位置下标 没有返回-1 第二个参数表示从第几个下标开始查找 默认为0
一个笔试题:把当前网页的url的参数解析为一个对象
var url = 'http:www.baidu.com/?user=kare&page=10&count=100'
function parseurl(str) {
var querystring = str.split("?")
var arr = querystring[1].split("&")
var obj = {}
for (var i = 0; i < arr.length; i++) {
var arr2 = arr[i].split("=")
for (var j = 0; j < arr2.length; j++) {
obj[arr2[0]] = arr2[1]
}
}
return obj
}
console.log(parseurl(url)) //{user: "kare", page: "10", count: "100"}
设计一个函数 返回某一个字符出现的次数
var str = "115105454411451"
String.prototype.count1 = function(str) {
var re
var count = 0
if (this.indexOf(str) == -1) {
console.log(0)
} else {
do {
re = this.indexOf(str, re)
re++
count++
}
while (re != 0)
console.log(count-1)
}
}
var a = str.count1("5")
扩展
var str="hello"
str.age=20//隐式操作 因为字符串是基本数据 所有的基本数据当做对象使用时 它们的点语法 都会多一步隐式操作(隐式包装成一个对象)
//隐式操作
var str=new String("hello")
str.age=20
var re=str.age
console.log(str.age)//20
var str="hello"
str.age=20
var re=str.age
console.log(str.age)//undefined
数组的内置函数
//1.
var arr=[10.20,30]
var arr2=new Array()//[]
var arr3=new Array(10)//[.lenght=10] 一个数是长度 全是undefined
var arr4=new Array(10,20)//[10,20] 两个以上就是数组
//2.
var arr=[10,20,30]
var arr2=["hello"]
var arr3=[10,20,]
var arr4= arr.concat(arr2)//将arr和arr2进行拼接成一个新数组
console.log(arr4)//[10,20,30,"hello"]
var re = arr.join()//把数组是元素按照join里的符号拼接成字符串 默认是,
console.log(re)//10,20,30
//3.
var arr=[1,2,5,8]
arr.pop()//删除数组的最后一个元素 返回值是新数组(里面是被删除的元素)
var re = arr.push("1",2)//在数组的最后面添加元素 可以加多个
console.log(arr)//[1, 2, 5, "1", 2]
console.log(re)//5 返回数组长度
//4.
var arr=[1,2,3,4]
arr.shift()//删除数组的第一个元素 返回值是新数组(里面是被删除的元素)
arr.unshift("1",2)//在数组的最前面添加元素 可以加多个 返回值也是数组的长度
console.log(arr)// ["1", 2, 2, 3, 4]
//5.
var arr=[1,2,3,4,5]
var re=arr.splice(2,2,"hello","1")//从下标2的元素开始 删除两个元素 然后在删除的位置添加"hello"和"1"
console.log(re)//[3, 4] 返回被删除的元素的数组
console.log(arr)//[1, 2, "hello", "1", 5]
//6.
var arr = [1,2,3,4,[1,2,3]]
arr.reverse()//翻转数组 只翻转调用函数的数组
console.log(arr)//[[1,2,3],4, 3, 2, 1]
//7.
var arr=[1,5,9,20,21,4]
arr.sort()//排序 按照表码排序 先比较第一位 一般用于名字排序
console.log(arr)//[1, 20, 21, 4, 5, 9]
//8.
//所有数组的方法 返回的一个新数组 新数组中的元素 如果是以前数组中的引用数据那么是同一个引用 比如以下的案例
var arr=[{name:'karen'},100,200]
var arr2=[1,2,3,5]
var re=arr.concat(arr2,90,20,30)
console.log(re==arr2,re==arr,re)
re[0].name="jack"
console.log(arr)//name:jack 原数组也被改变