JavaScript基础(parseInt)
2019-05-05 本文已影响0人
吴敬悦
- 对于 parseInt 函数来说,返回的结果是十进制,其中第一个参数是字符串,如果转换失败返回 NaN ,而第二个参数则是对第一个参数的说明,也就是说,如果第一个参数的字符串是二进制,那么第二个参数就传 2 ,同理如果第一个参数是十六进制,那么就传 16 ,以此类推,这个函数会给人一种错觉,那就是第二个参数是要转换成几进制,其实并非如此,而是上面所说的那样,还要特此说明的是,由于数字,都可以转换成十进制与十六进制,所以第一个参数到底是几进制,那要取决于你的需求里面是几进制;
- 将字符串转换成十进制还有一种更加简单的方法,也就是使用单元运算符 + ,具体内容:+ "0xff" 输入的结果是255或者 + "010" 输出的结果是 10 ,经过测试只能转换十进制和十六进制,当然最后的结果都是十进制;
- 如果所转换的字符串里面有非数字,那么会忽略字符以后任何字符,包括这个字符,如果字符串里面第一个字符就是非数字,那么直接返回 NaN ,如果不是会打印数字部分;
- 使用一元运算符 + 的时候,除了上面的不足以外,还有就是如果字符串中有非数字,不管这个非数字在字符串的什么位置,都将会失败;
- && 与 || 的短路运算,这两个是逻辑运算符,几乎所有的编程语言中, && 都有只要左边的表达式不成立,那么就不再执行右边的表达式, || 是只要左边的表达式成立,那就不再执行右边的表达式,可以利用这一特性来进行判断变量是否设置,比如我有这样一个需求,一个有可选和必须,其中可选参数,用户可以不传递,不传递的参数都是使用默认值,那么怎样判断用户有没有传递呢,可以使用 if 来进行判断,也可以使用 || ,将那个参数放到 || 左边,然后把赋值的默认值放到右边,这样就可以完成这个工作;
- 在 javascript 的选择语句中, case 后面的表达式与 switch 里面的值是进行 === 比较的,也就是说,值不光要值相等,还要类型也相同;
- 在单独给对象添加属性的时候,可以使用方括号,在方括号里面可以使用变量值,但是在定义对象的时候不能方括号,但是现在可以了, es6 添加的,具体例子如下:
// es6 和 es5 都能直接赋值的方式使用方括号
var s = 1
var a = {}
a["test" + s] = s
// 在 es5 中不能使用方括号
var b = {
// ["test" + s] : s, 这是错误的
"test" : "wujingyue"
}
// 在 es6 中是可以的
var c = {
["test" + s] : s
}