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, …)
函数声明&函数表达式
- 函数表达式,当解析器执行到它所在的代码行时,才会真正被解释执行,所以两个逻辑分支可以分别执行
- 函数声明,解析器会率先读取并且让其在执行任何代码前可用
变量提升
- 函数中没有声明的变量会提升为全局变量