JS的数据类型
JavaScript的数据类型:2类
1. 原始数据类型:
String - 字符串
Number - 数字
Boolean - 布尔 true false
undefined - 所有仅声明,未赋值的变量的默认值! - 空(修饰原始数据类型的空)
null - 空 (修饰对象的空)
*symbol
- 引用类型对象:array(数组) function(函数) Math Date
var a; // 定义变量 a
colonsole.g(a); // 显示undefined,因为a未赋值
----------------------------------------------------------------------------------------------
var str="hello"; //定义变量并赋值 String类型
var n=5; //定义变量并赋值 num类型
var boo1='true'; //定义变量并赋值 String类型
var boo2=false; //定义变量并赋值 boolean类型
console.log(str); //输出 hello
console.log(n); //输出 5
console.log(boo1); //输出 true
console.log(boo2); //输出 false
- 、数据类型的转换
数据类型转换 - 隐式转换:不需要程序员干预,js可以自动的完成类型转换
仅讨论算数计算时的隐式转换
1. 算数计算中,一切数据都默认转换为数字后,再做计算
boolean: true -> 1 false -> 0
null -> 0
undefined -> NaN -> not a number (不是一个数字)
一些数据不能转换为数字的话,则会转换为NaN
**NaN不等于,不大于,不小于任何值包括他自己
只要NaN参与的运算结果永远是NaN
NaN虽然表示不是一个数字,但是他本身属于number数据类型
2. 在+运算中,只要碰到字符串,+就不再是+法运算符号了,而变成了字符串拼接符号了,导致另一个不是字符串类型的数据,会变成字符串类型数据
var s1="3",s2="2", // 字符串
n1=3,n2=2, // 数字
b1=true,b2=false;// 布尔
var un; // undefined不能隐式的转化为数字,只能转换为 NaN
var n=null;
console.log(s1-n2); // "3"-2 // 3 -2 = 1 // 输出 1
console.log(b1+n1); // true+3 // 1 +3 =4 // 输出 4
console.log(n1-n) ; // 3 -null // 3- 0 =3 // 输出 3
console.log(n1-un); // 3 - undefined// 3 - NaN // 输出 NAN
console.log(s1+n2); // "3"+2 // "3"+"2" = "32" //输出32 字符串叠加
console.log(s2+b2); // "2"+false // "2"+"false" //字符串叠加
console.log(n1-s2+s1+n);// 3 -"2"+"3"+null // 3-2+"3"+null
// 1+"3"+null // "13"+ "null" = "13null" //相减后在字符串叠加
console.log(n1-un+s2);// 3 -undefined+"2"// 3-NaN+"2"
// NaN+"2"// "NaN"+"2" = "NaN2" //前面NAN计算后在字符串叠加
- 、数据类型的转换--强制转
JS强制转换:程序员主动的调用专门的函数(API)执行数据转换
何时使用:自动转换的结果不是我们想要的结果的时候
任意-> string 2个API
x.toString() x不能是undefined或者是null
String(x) -> 相当于隐式转换 -> 万能转换方式
typeof(x) -> 返回的结果数据类型
String -》 Number:2个API
parseInt(str/num):从第一个字符开始,依次读取每个数字,只要碰到
第一个非数字字符就停止,自动跳过开头的所有空字符
parseFloat(str/num):解析规则同parseInt,只不过认识第一个小数点
var n=null; // 赋值n为null
var un; // 定义un 但是未赋值
console.log(n+""); // "null" 字符串NULL
console.log(un+"");// "undefined" 因为UN未被赋值
console.log(n); // 输出 null
console.log(String(n)); // 输出null
console.log(un); //输出undefined
console.log(typeof(String(un))); //输出string typeof 输出类型
var width=" 90px";
console.log(parseInt(width)); // 90 取整
var n1=90.8;
console.log(parseInt(n1));// 90 取整
var height=" 89.98.97px";
var n2=90.8;
console.log(parseFloat(height)); // 89.98 认识第一个小数点并输出
console.log(parseFloat(n2));
作业一;
作业二;