JavaScript的遍历、数组方法、字符串方法、对象方法

一、遍历器:

        for、for-in、for-of。对于数组的遍历这三种方法都适合。

<script>
    var arr = [23,43,15,95,'hello'];
    for(var i = 0;i<arr.length;i++){
        console.log(arr[i])
    }
    //for(i in arr){
    //   console.log(arr[i])
    //}
    //for(i of arr){
    //    console.log(i)
    //}
</script>

        对于对象的遍历,使用for-in,且遍历时原型是上的也会进行遍历。 

<script>
    function fn(){
        this.a = 34
        this.age = 19
    }
    fn.prototype = {x:999}
    var obj = new fn()
    for(i in obj)
        console.log(obj[i])
    console.log('a' in obj)  //判断一个属性是否属于这个对象,原型上的也算
</script>

 二、数组的方法

        forEach():相当于是一种对数组的遍历,forEach的参数是一个回调函数,回调函数的参数有三个,第一个为数组元素,第二个为数组下标,第三个为进行遍历的数组,没有返回值。

<script>
    var arr = [23,45,50,90,250]
    var re2 = arr.forEach(function(el,index){
        console.log(el,index)
        return el
    })
    console.log(re2)
</script>

         map()方法:对调用方法的数组中的每一个元素执行指定的函数,也就是作为参数的回调函数。返回值是回调函数每一次的返回值组成的新数组。

<script>
    var re = arr.map(function(el,index){
        console.log(el,index)
        return el
    })
    console.log(re)
</script>

         filter()方法:用以过滤数组中的元素,返回值是由符合要求的元素取出来组成的一个新数组。filter会根据每一次的返回值决定是否将此次取出来的元素放进新数组。

<script>
    var arr = [23,44,51,90,250]
    var re = arr.filter(function(el,index){
        if(el%2==0)
            return true
        else
            return false
    })
    console.log(re)  //结果:[44, 90, 250]
</script>

        every():参数为回调函数,返回值是布尔值,用以判断数组中的元素是否都满足指定条件,若有一个不满足,则整个返回值为false。

<script>
    var arr = [23,44,51,90,250]
    var re = arr.every(function(el,index){
        if(el<50)
            return true
        else
            return false
    })
    console.log(re)  //结果:false
</script>

        some():参数为回调函数,返回值是布尔值,与every相反,some方法是判断数组中的元素是否由满足条件的,有一个满足则返回true。

<script>
    var arr = [23,44,51,90,250]
    var re = arr.some(function(el,index){
        if(el>100)
            return true
        else
            return false
    })
    console.log(re)   //结果:true
</script>

        reduce():用以对数组中的元素进行一个累计计算,最后得到的返回值是一个总的结果,在实际开发中通常用来计算购物车的总价。回调函数接收四个参数,累积值、当前元素的值、当前元素的索引和正在遍历的数组本身。

<script>
    var arr = [23,44,51,90,250]
    var re = arr.reduce(function(a,b){
        console.log(a,b)
        return a+b
    })
    console.log(re)
</script>

         reduceRight():与reduce基本类似,区别在于,reduceRight是从右边开始累计。

<script>
    var arr = [23,44,51,90,250]
    var re = arr.reduceRight(function(a,b){
        console.log(a,b)
        return a+b
    })
    console.log(re)
</script>

 三、字符串方法:

        charAt():将字符串当做一个数组,根据下标来访问字符。

        charCodeAt():与charAt类似,区别在于返回值是该字符的ASCII码值。

<script>
    var str = 'hello,world,this is a string'
    var re = str.charAt(6)
    var re2 = str.charCodeAt(6)
    console.log(re,re2)  //结果:w 119
</script>

        split():将字符串进行截取,分成的各段分别作为一个元素构成一个新数组返回。不给参数或者给了一个字符串中没有的字符,则将整个字符串作为一个元素放入数组,参数为空字符是将每一个字符都进行拆分。

<script>
    var str = 'hello,world,this is a string'
    var re = str.split(',')
    console.log(re)  //结果:["hello", "world", "this is a string"]
</script>

    

<script>
    var str = 'lpn=0&ln=30&fr=ala&fm=&sme=&cg=&bdtype=0&oriquery=ascii&fromurl=ippr_z2C'
    var re = str.split('&')
    var obj = {}
    var re2 = re.map(function(arg){
        console.log(arg)
        var arr = arg.split('=')
        obj[arr[0]] = arr[1]
    })
    console.log(obj)
</script>

         slice():根据给定的下标范围,截取子字符串,左闭右开。

<script>
    var str = 'hello,world,this is a string'
    var re = str.slice(2,6)
    console.log(re)    //结果:llo,
</script>

        toLowerCase():将字符串中的所以字母转为小写。

        toUpperCase():将字符串中的所以字母转为大写。

<script>
    var str = 'hello world,CSDN GOOD'
    var re = str.toLowerCase()
    var re2 = str.toUpperCase()
    console.log(re,'\n',re2)
</script>

         startWith():判断字符串是否由给定的字符串开头,返回值为布尔值。

        endWith():判断字符串是否由给定的字符串结尾,返回值为布尔值。

<script>
    var str = 'nice to meet you'
    var re = str.startsWith('nice')
    var re2 = str.endsWith('y')
    console.log(re,re2)   //结果:true false
</script>

       indexOf():判断给定字符在字符串中的下标位置,没有或为引用数据则结果为-1,若给的不是单个字符,以第一个字符为准。

<script>
    var str = 'nice to meet you'
    var re = str.indexOf('to')
    console.log(re)   //结果:5
</script>

        padStart():在开头填充指定的字符串,直到达到指定的字符串长度。

        padEnd():在结尾填充指定的字符串,直到达到指定的字符串长度。

<script>
    var str = 'nice to meet you'
    var re = str.padStart(30,'很高兴认识你')
    var re2 = str.padEnd(25,'我也一样')
    console.log(re,'\n',re2)
</script>

        trim():去掉字符串首尾的空格。还有trimStart()、trimEnd(),分别为去掉开始、结尾的空格。

<script>
    var str = '  nihao  '
    var re = str.trim()
    console.log(re)  //结果:nihao
</script>

 四、文字加特效

        文字加特效是将该方法与里面的内容解析为一个对应的标签字符串,在实际运用中通过innerHTML将其解析显示在网页上(innerHTML可以解析标签,类似的是innerText,它只能显示为普通文本)。

<script>
    var str = '4'
    re = str.big();  //字体变大
    re = str.small()    //字体变小
    re = str.fontsize('40px')  //字体大小
    re = str.fontcolor('red')   //字体颜色
    re = str.bold()     //字体加粗
    re = str.italics()      //字体倾斜
    re = str.link('http://www.baidu.com')   //文字链接
    re = str.sup()      //字体上标
    re = str.sub()      //字体下标
    console.log(re)
    document.body.innerHTML= `CaSO${re}`
</script>

 五、Math方法

<script>
    var re = Math.floor(3.75)  //向下取整
    console.log(re)
    var re = Math.ceil(3.15)   //向上取整
    console.log(re)
    var re = Math.round(3.75)  //四舍五入
    console.log(re)
    var re = Math.max(10,20,40,23)  //取最大
    console.log(re)
    var re = Math.min(10,20,40,23)  //取最小
    console.log(re)
    var re = Math.LN10  
    console.log(re)
    var re = Math.PI   //近似π,但不是π
    console.log(re)
    var re = Math.log10(100)  //log 10 为底,100的对数
    console.log(re)
    var re = Math.sqrt(9)       //9开根号
    console.log(re)
    re = Math.random()  //生成随机数,范围是固定的0~1,不包括1
    console.log(re)
    console.log(parseInt(re*(100-10+10))) //将得到的随机数进行操作,以此来改变范围
</script>

 六、对象的方法:

        构造函数调用的方法叫静态方法,构造函数调用的属性叫静态属性。

<script>
    var re = Object.is('1',1)   //用以判断两个是否相同,此判断的相同指为同一个
    console.log(re)   //结果:false
</script>

        keys方法,将对象的键名取出,返回一个数组。values方法,将对象的属性值取出,返回一个数组。

<script>
    var obj = {name:'tom',age:22}
    var re = Object.keys(obj)
    var re2 = Object.values(obj)
    console.log(re,re2)
</script>

         Object.defineProperty()是JavaScript中用于在对象上定义新属性或修改现有属性的方法。接收三个参数,第一个是要操作的对象,第二个是要定义或修改的属性的名称,第三个是一个描述符对象,用于定义或修改属性的特性。

<script>
    var obj = {name:'tom',age:22}
    Object.defineProperty(obj,'sex',{
        value:'男'
    })
    console.log(obj)   //结果:{name: "tom", age: 22, sex: "男"}
</script>

        Object.create()方法创建一个新对象,并将其原型设置为指定的对象 。hasOwnProperty()只检查对象自身的属性,而不会检查继承的属性,也就是在即使原型链上存在该属性,如果自身不包含将返回false。

<script>
    var person = {sex:'男'};
    var john = Object.create(person, {
        name: {
            value: 'John',
            writable: true,
        },
        age: {
            value: 25,
            writable: false,
        }
    });
    console.log(john);  //结果:{name: "John", age: 25}
    console.log(john.sex);   //结果:男
    var re = john.hasOwnProperty('sex')
    console.log(re)    //结果:false
    var re = john.hasOwnProperty('name')
    console.log(re)   //结果:true
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值