变量及强制类型转换

  • 在变量中加入字符串进行拼接,可以被同化为字符串
    举例1:
    var a = "1";
    var b = 2;
    console.log(a + b);

控制台输出:
12
举例2:

    var a = 1;
    var b = 2;
    console.log("a" + b);   //"a"就不是变量了!所以就是"a"+2 输出a2

控制台输出:
a2

  • - 、* 、/ 、%这几个符号会自动进行隐式转换
    例如:
    var a = "4" + 3 - 6;
    console.log(a);

输出结果:
37(43-6)

  • null 和 undefined
    任何数据类型和undefined运算都是NaN(not a number);
    任何值和null运算,null可看做0运算。
  • prompt()就是专门用来弹出能够让用户输入的对话框。重要的是:用户不管输入什么,都是字符串。

数据类型转换

转为字符串类型

  • 变量+"";
  • 调用toString()方法;
  • 使用String()函数。(String(变量))

转为数字类型

使用Number()函数
string 转 number

1、如果字符串中是纯数字,则直接转为数字;
2、如果字符串中有非数字内容,则转为 NaN;
3、如果字符串是一个空串或者是一个全是空格的字符串,则转换为0。

Boolean 转 number
  • true 转为 1
  • false 转为 0
null 转 number
  • 结果为 0
undefined 转 number
  • 结果为 NaN
parseInt():字符串 -> 整数【重要】

parseInt()是专门用来对付字符串的。

parseInt()的作用是将字符串中的有效的整数内容转为数字
例如:

parseInt("5"); //输出结果为数字 5

parseInt 具有以下特性:

  • 只保留字符串最开头的数字,后面的中文自动消失
console.log(parseInt("2017在公众号上写了6篇文章"));  //打印结果:2017

console.log(parseInt("2017.01在公众号上写了6篇文章"));  //打印结果仍是:2017   (说明只会取整数)

console.log(parseInt("aaa2017.01在公众号上写了6篇文章"));  //打印结果:NaN
  • 自动带有截断小数的功能:取整,不四舍五入。
var a = parseInt(5.8) + parseInt(4.7);
console.log(a);    //结果为 9
var a = parseInt(5.8 + 4.7);
console.log(a);   //结果为 10
  • 如果对非String使用parseInt()或parseFloat(),它会先将其转换为String然后再操作。
var a = true;
console.log(parseInt(a));  //打印结果:NaN (因为是先将a转为字符串"true",然后然后再操作)

var b = null;
console.log(parseInt(b));  //打印结果:NaN  (因为是先将b转为字符串"null",然后然后再操作)

var c = undefined;
console.log(parseInt(c));  //打印结果:NaN  (因为是先将b转为字符串"undefined",然后然后再操作)

var d = 168.23;
console.log(parseInt(d));  //打印结果:168  (因为是先将c转为字符串"168.23",然后然后再操作)

转为 Boolean

将其他的数据类型转换为Boolean,可以使用Boolean()函数。

  • 数字 --> 布尔。除了0和NaN,其余的都是true。

  • 字符串 ---> 布尔。除了空串,其余的都是true。

  • null和undefined都会转换为false。

  • 对象也会转换为true。

其他进制的数字转换

-16进制的数字,以0x开头

  • 8进制的数字,以0开头

  • 2进制的数字,0b开头(不是所有的浏览器都支持:chrome和火狐支持,IE不支持)

比如070这个字符串,如果我调用parseInt()转成数字时,有些浏览器会当成8进制解析,有些会当成10进制解析。

所以,比较建议的做法是:可以在parseInt()中传递第二个参数,来指定数字的进制。例如:

a = "070";
a = parseInt(a,10); //转换成十进制
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容