标签:
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