爬虫js逆向基础——03.常见非指纹`built-in`函数

常见非指纹`built-in`函数

  • unescape:解码用法

    unescape('visit%20w3cschool%21') // ->visit w3cschool!
    
  • Function:函数实例化方法

    var fun = new Function("a", "return a") //前面是形参,后面是返回的内容
    等价于
    function fun(a){
        return a
    }
    
  • eval:把字符串当做js代码执行,并且会执行一个虚拟机

    eval('alert("zx")')
    

    Array():执行会得到一个空的数组
    Object():执行会得到一个空的对象

    传参的话:
    Object(111): // ->Number {111}会返回一个Number的构造函数,相当于new Number()
    Object(“111”): // ->String{“111”}

  • Date(): 会返回本地时间,并非服务器时间,“Fri Apr 16 2021 20:29:33 GMT+0800 (中国标准时间)”

    a = new Date()
    a可以执行一些方法,比如getDate(), getDay()
    
  • RegExp: 正则 //有点忘了

    a = new RegExp("n?") // 定义一个规则
    a.exec("asdffgghhjjnjk") //去匹配一个字符串
    
  • indexof:会返回索引值

    arr = ['cookie', 'ck', 'cck']
    arr.indexof('cookie') //会返回cookie的索引值
    
  • hasOwnProperty:检测一个属性是否是一个对象的自有属性

    function F(){
        this.name = "自有属性"
    }
    F.prototype.name =  "继承属性"
    var f = new F()
    f.hasOwnProperty("name")
    
  • decodeURIComponent encodeURI encodeURIComponent:加密解密url

    encode('a 2') // -> a%202
    decodeURIComponent('a%202') // ->'a 2'
    
  • Math:Math.random Math.round四舍五入

    Math.round(0.5) // -> 1
    
  • parseInt:类型转换

    parseInt('1555') // -> 1555
    parseInt(15.55) // -> 15
    parseInt('15.55') // -> 15
    
  • Array数组操作:push在数组最后面添加一个元素

    unshift:在数组前面添加一个元素

    shift:删除数组内指定元素,若有多个相同的,默认删除第一个

    pop:删除数组最后一个元素,并返回这个元素

    concat:合并数组并返回,可以传参多个数组,没有去重功能

    var arr = new Array()
    arr.push(4)
    arr.push(3)
    arr.push(2)
    arr.push(1)
    -->[4,3,2,1]
    
    arr2 = arr.concat(arr1, ar3) //合并数组,没有去重功能
    
  • splice, slice:拆分数组,splice改变原数组,slice:不改变原数组

    var arr = [1,2,3]
    arr.splice(0,1) //-> [1] 原数组:->[2,3]
    
  • 字符串操作:slice splice split substring substr concat

    splice(index,howmany,item1,itemx)
    index:必填,整数,规定添加或删除的位置,使用负数可从数组结尾处规定位置
    howmany:必填, 要删除几个
    item1, itemx:向数组中添加的元素
    
  • split按照指定元素把字符串切分为数组, joinsplit相反

    "jahflkah;sfdhjnklacnjkla heflanuijf a lkca".split("s")
    
  • substring(start, end):如果开始到结束,第一个参数大于第二个参数,会自动交换两个参数的位置

  • substr(start, length):从字符串开始的位置,字符串的长度去处理这个数组,抽取指定长度的字符串

    "wertyuioplkjh".substr(5,3)
    ->"uio"
    如果3,不传的话,则从下标位置一直取到最后
    
  • fromCharCode charCodeAt:字符串与ascii码转换

    charCodeAt:把字符串转为ascii码
    fromCharCode:把ascii码转变为字符串
    
  • atob btoa Uint8Array ArrayBuffer Int32Array Int16Array:与加密有关

    btoa -> binary to ascii //编码操作
    atob -> ascii to binary //解码操作
    
  • setTimeout clearTimeout setInterval:定时器

    // setTimeout:延迟多少多少秒时间执行一次
    // setInterval:按照时间间隔一直执行
    // clearTimeout:清除定时器
    setTimeout(function(){}, 500)
    
  • 三元表达式,嵌套的三元表达式

    a = 10
    x = a > 10 ? 2 : a > 5 ? 7: 8
    //解析:a > 10吗?不大于10, 走a>5吗?大于5 所以x=7
    
    a = 11
    x = a > 10 ? 2 : a > 5 ? 7: 8
    // 2
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值