# js中容易忽略的参数
# parseInt()
parseInt()函数可解析一个字符串,并返回一个整数 语法:
parseInt(string, radix)
1
radix
可选,表示要解析的数字的基数,介于2 ~ 36之间,若省略该参数或该参数为0,则为10.若要解析的数字以0x
或0X
开头,则将以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
1
2
3
4
5
2
3
4
5
# toString()
number.toString(radix)
1
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
1
2
3
4
5
2
3
4
5
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
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
1.toString()
为什么会报错?
因为JS引擎无法确定这里的.
是什么意思,是浮点数
还是点运算符
?
当整行只有一个.
时,可以选择用()
包裹起来,或者用空格和后面的.toString()
隔开
# forEach()
array.forEach(function(currentValue. index, arr), thisValue)
1
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
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
其实除了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')
1
2
3
4
2
3
4