js中容易忽略的参数

12/28/2020 JS

# parseInt()

parseInt()函数可解析一个字符串,并返回一个整数 语法:

parseInt(string, radix)

radix可选,表示要解析的数字的基数,介于 2 ~ 36 之间,若省略该参数或该参数为 0,则为 10.若要解析的数字以0x0X开头,则将以 16 为基数

console.log(parseInt('10', 2)) // 2
console.log(parseInt(16, 8)) // 14
console.log(parseInt(0x25)) // 37
console.log(parseInt(10)) // 10
console.log(parseInt(10, 0)) // 10

# toString()

number.toString(radix)

radix可选,规定表示数字的基数,是 2~36 之间的整数,若省略该参数,则使用基数 10

var num = 15
console.log(num.toString()) // 15
console.log(num.toString(2)) // 1111
console.log(num.toString(8)) // 17
console.log(num.toString(16)) // f
var num = 1
console.log(num.toString())  // 1
console.log(1.1.toString())  // 1.1
console.log(1..toString())  // 1
console.log(1.0.toString())  // 1
console.log(1. .toString())  // 1
console.log(1 .toString())  // 1
console.log((1).toString())  // 1
console.log(1.toString())  // Uncaught SyntaxError: Invalid or unexpected token

1.toString()为什么会报错? 因为 JS 引擎无法确定这里的.是什么意思,是浮点数还是点运算符? 当整行只有一个.时,可以选择用()包裹起来,或者用空格和后面的.toString()隔开

# forEach()

array.forEach(function(currentValue. index, arr), thisValue)

thisValue可选,可以用来绑定回调函数的this关键字

let obj = {
  name: 'an object',
}
let name = 'global name'
let arr = ['zhangsan', 'lisi']

arr.forEach(function(item) {
  console.log(item, this.name)
}, obj)

// zhangsan an object
// lisi an object

其实除了 forEach,数组的其他迭代方法如:every(),some(),find(),map(),filter()等都有可选的第二参数

# console.log()

console.log()支持占位符,比如:字符(%s) ,整数(%d 或%i),浮点数(%f),样式(%c)等.第二个参数开始(可能会有第三个第四个)填入的是要去填坑占位符的内容或样式

console.log('hello %s,hi %s', 'JS', 'Dart') // hello JS,hi Dart
console.log("I'm %d years old", 12) // I'm 12 years old
console.log('My weight is %f', 66.6) // My weight is 66.6
console.log('%c我是一段有%c颜色的话', 'color:red;', 'font-size:18px;color:blue')
    希望像星光一样闪烁
    文雀