【牛客网前端刷题tips】js基础知识tips

parseInt用法

    parseInt(string, radix) 当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。

类型转换

    出现%取余计算等将字符转为数字的计算,后续有类型判断的流程,需要将类型判断放在会发生数字转换的计算判断之前

函数传参

    调用函数可以使用call或者apply这两个方法 call需要将传递给函数的参数明确写出来,是多少参数就需要写多少参数
Function.call(obj[, param1[, param2[, [,...paramN]]]]);
    apply则将传递给函数的参数放入一个数组中,传入参数数组即可
Function.apply(obj[, argArray]);

进制转换

    10进制转其他进制
//10转16进制
function base16(192) {
  return str.toString(16) //c0
}
    其他进制转10进制
//2转10进制
function base10(11000000) {
  return parseInt(str,2) //192
}

精度问题

    toFixed() 方法使用定点表示法来格式化一个数值 可能报错赋值(赋值一个不存在的数)过程可以考虑 或
//a.toString().split(.)并不确定会分成什么长度的情况下
//考虑 ||  使赋值正确
ex:aL = a.toString().split(.)[1]||

遍历对象属性

    for in 用于遍历对象的可枚举属性,包括自有属性、继承自原型的属性 Object.keys 返回一个数组,元素均为对象自有的可枚举属性 Object.getOwnProperty 用于返回对象的自有属性,包括可枚举和不可枚举的 hasOwnproperty 检测属性是存在实列中,还是存在原型中。存在对象实列中返回true

正则表达式

    开始结束符 匹配格式字符串时加上 ^ 和 $ 表示完整匹配 反向引用 1:表示的是引用第一次匹配到的()括起来的部分 2:表示的是引用第二次匹配到的()括起来的部分 /([a-zA-Z])1/ 匹配存在两个连续相同字母的字符串 是否匹配符号 ?匹配前面的子表达式零次或一次

String.match()

    match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配. 该方法类似 indexOf()和lastIndexOf(),但是它返回指定的值,而不是字符串的位置.

bind、apply、call

    bind:创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。bind一般做回调使用 func.bind(thisArg[, arg1[, arg2[, …]]]) apply:接受的是参数数组,call:接受的是参数列表 func.apply(thisArg, [argsArray]) func.call(thisArg, arg1, arg2, …)

函数声明&函数表达式

    函数表达式,当解析器执行到它所在的代码行时,才会真正被解释执行,所以两个逻辑分支可以分别执行 函数声明,解析器会率先读取并且让其在执行任何代码前可用

变量提升

    函数中没有声明的变量会提升为全局变量
经验分享 程序员 微信小程序 职场和发展