——目录——
◉ 数据类型分类
数据类型可分为一下五种:
- Number 数字型:整型与浮点型都归为数字型
- String 字符串型:使用单引号或双引号括起来的都属于字符串类型
- Boolean 布尔类型:有 true 和 false 两个值
- Null 空值:表示为空的对象
- Undefined 未定义值:表示未赋值的变量
◉ 声明、赋值与输出
- 声明但不赋值:值为undefined
- 不声明直接赋值:可以使用(变成全局变量)
- 不声明直接输出:报错
如:
<script>
var a;
b = 10;
console.log(a + ' ' + b);
console.log(c);
</script>
◉ 数据类型注意点
① JavaScript 为动态弱类型语言
- 数据的类型是程序在运行中由等号右边的值决定的。
- 所以在程序中一个变量的数据类型可以不断变化
如:
<script>
var num = 10;
console.log("num is " + typeof(num));
num = 'h';
console.log("num is " + typeof(num));
</script>
输出结果:
num is number
num is string
注:typeof(变量); 用于判断变量的数据类型
② 特殊变量名
注意:name有特殊含义,一般不作为变量名使用,不声明直接输出name不会报错,如:
console.log(name);
没有报错,输出内容为一片空白
③ 布尔值参与四则运算
四则运算中 true 的值为1,false 的值为0
可任意参与四则运算
④ 字符串的拼接
字符串与任何类型进行 + 运算,均为拼接字符串
⑤ 错误截断
Java为解释型语言,在运行时为读取一句解释一句
所以当读取到一句错误语句时,往后的代码将不再执行
◉ 引号的嵌套使用
字符串变量既可以用单引号也可以用双引号
当需要在字符串中出现引号作为嵌套时
两种引号应交替出现,如:
<script>
console.log("我叫'IceClean'");
console.log('我叫"IceClean"');
</script>
输出结果:
我叫'IceClean'
我叫"IceClean"
没有交替使用将出现配对错误!
◉ 三个特殊值的出现及判断
JavaScript 的三个特殊值分别为:Infinity ,-Infinity ,NaN
以及两个最值:MAX_VALUE 和 MIN_VALUE
各个情况的例子:
<script>
console.log("最大值:" + Number.MAX_VALUE);
console.log("最小值:" + Number.MIN_VALUE);
console.log("正无穷:" + Number.MAX_VALUE * 2);
console.log("负无穷:" + (-Number.MAX_VALUE) * 2);
console.log("非数:" + ( "Ice" - 2 ));
console.log("是非数吗?:" + isNaN( "Ice" - 2 ));
console.log("是非数吗?:" + isNaN( - 2 ));
</script>
输出结果:
最大值:1.7976931348623157e+308
最小值:5e-324
正无穷:Infinity
负无穷:-Infinity
非数:NaN
是非数吗?:true
是非数吗?:false
总结:
- 最大值的倍数为正无穷,正无穷添负号为负无穷
- 非数值字符串与数字相减得到非数(数值字符串特殊)
- isNaN() 用于判断是否为非数,是则返回true,否则返回false
其余情况:非0除以0得无穷,0除以0得非数…
◉ 数据类型转换
引入: 在 prompt(); 中得到的都是字符串类型,很多情况下需要将其转化成数字型
① 将字符串型转化为数字型
– 方法一:
使用 parseInt 和 parseFloat
<script>
var a = "12";
var a1 = parseInt(a);
console.log("a1 is " + typeof(a1) + " : " + a1);
var b = "12.34";
var b1 = parseInt(b);
console.log("b1 is " + typeof(b1) + " : " + b1);
var c = "12.34";
var c1 = parseFloat(c);
console.log("c1 is " + typeof(c1) + " : " + c1);
console.log(parseInt("12px"));
</script>
输出结果:
a1 is number : 12
b1 is number : 12
c1 is number : 12.34
12
总结:
- 整型和浮点型分别用 parseInt 和 parseFloat
- 如果浮点型使用了 parsrInt ,小数部分将直接被砍掉
- 两个函数都可以自动去掉位于数字后面的非数字(实际上是当函数读取到了非数值后便停止,只输出前边的数字部分,因而不能将非数字放在开头,会报错),这可以实现去掉带单位的数值
– 方法二
使用算数运算符 - * /
注意:不能用 + ,会变成字符串的拼接
<script>
var a = "12";
var a1 = a - 2;
console.log("a1 is " + typeof(a1) + " : " + a1);
var b = "12.34";
var b1 = b * 1;
console.log("b1 is " + typeof(b1) + " : " + b1);
var c = "12.34";
var c1 = c / 1;
console.log("c1 is " + typeof(c1) + " : " + c1);
</script>
输出结果:
a1 is number : 12
b1 is number : 12.34
c1 is number : 12.34
总结:
- 对字符串进行 - 运算可以得到数字型(两个数值型字符串相减也可以的)
- 直接拿字符串 *1 或 /1 都可以直接得到数字型,而且整型和浮点型通用
– 方法三
使用函数 Number(变量); 方法也可~
② 将其他类型转化为字符串型
- 使用同函数 toString(变量);
- 加号拼接(最常用)
- 使用强制转化 String(变量)
注意:这里 JavaScript 的强制转化与其他语言不同,String没有括号,反而变量有括号,注意区分!
③ 将其他类型转化为布尔型
有且只有一个方法:使用函数 Boolean()
规则: ’ ’ ,0,NaN,null,undefined 都转为fasle
表示为 ‘空’ ‘无’ 的都为false,其余为true
融进晨光,黑夜与白夜的距离