码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript数据类型转换

时间:2016-06-14 22:24:20      阅读:433      评论:0      收藏:0      [点我收藏+]

标签:

JS是弱类型语言
1.声明变量时,不需要规定变量存储的数据类型
2.赋值时,动态判断数据的类型
   同一个变量,先后可保存不同类型的值
3.js会在需要时自动转换数据的类型
 
两大类转换方式:隐式转换和强制转换
 
隐式转换
不需要程序员干预,js自动完成的类型转换
算术计算中,一切数据都默认转换为数字,再计算
在+运算中,碰到字符串,+就变为字符串拼接,另一个不是字符串的数据,被自动转换为字符串
特殊情况:如果数据无法被转换为数字类型,会被转为NaN,表示不是一个数字的数字(不是以恶有效的数字)
                 NaN不等于,不大于,不小于任何值,包括NaN
                 NaN参与任何算术运算结果永远为NaN
表达式:变量、数据和运算符组成的公式,默认都是从左向右,两两运算,任何表达式都有一个运算结果
              任何一个表达式都可以作为一个值使用
 
数字 + 字符串 : 字符串
数字 + 布尔值 : 数字(true=1,false=0)
字符串 + 布尔值 : 字符串(布尔值=true/false)
布尔值 + 布尔值 : 数字(true=1,false=0)
举例:
var n1=2, n2=3,
      s1="2", s2="3",
      b1=true, b2=false,
      str;
console.log(n1+n2); //5
console.log(n1+s2); //"23"
console.log(s2-s1); //1
console.log(s1-n2); //-1
console.log(n1+n2+s2); //"53"
console.log(n1+s2+n2); //"233"
console.log(s2-b1); //2
console.log(s2+b1); //"3true"
console.log(s1*b2); //0
console.log(s1+str); //"2undefined"
console.log(s2-str); //NaN
console.log(n1*str); //NaN
 
强制转换
程序员主动调用专门的函数,执行转换
何时使用:自动转换的类型,不是想要的类型
将任意类型转换为字符串类型
    x.toString();x不为undefined和null时才可以用
    String(x);相当与隐式转换
将非字符串类型转换为数字类型
    Number(x);专用于将非字符串转换为数字,相当与隐式转换
将字符串类型转换为数字类型
    parseInt(str);从第一个字符开始,依次读取每个数字,只要碰上第一个非数字字符就停止
                        自动跳过开头的空字符,不认识小数点
                        何时使用:将字符串转换为整数
    parseFloat(str);认识第一个小数点
                            何时使用:将字符串转换为小数
将任意类型转换为布尔类型
    Boolean(x);相当与隐式转换
                      只有5个值会转换为false,其余都为true
                      "" NaN undefined null 0
 
快速转换:
任意类型转String:x + ""
任意类型转Boolean:!!x
 
prompt();//提示信息
var salary = prompt("请输入您的工资");//输入5000
var mysalary = salary+1000;//
console.log("您涨薪后的工资是(错误):" + mysalary);//50001000
var mysalary2 = Number(salary)+1000;
console.log("您涨薪后的工资是(正确):" + mysalary2);//6000
 
****凡是从页面获取(返回)的数据都是字符串,必须先转换在进行计算

 

Javascript数据类型转换

标签:

原文地址:http://www.cnblogs.com/ljf-blogs/p/5585563.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!