变量的数据类型
一个变量的类型,由变量的值来决定。
基本数据类型:字符型(String)、数值型(Number)、布尔型(Boolean)、Undefined(未定义型)、Null(空型)
复合数据类型:数组(Array)、对象(Object)、函数(Function)
注意:基本数据类型和复合数据类型的主要区别:基本数据类型的值只有一个,而复合数据类型的值可以多个
1、数值型数据(Number)
数值型数据包含整型和浮点型(小数)。
Var a = 100;
Var a = 0;
Var a = -100;
Var a = 0.987;
Var a = NaN; //特殊的一个
数值型数据有一个特殊的值NaN,它的含义是not a number。用在:将其它类型的数据转成数值型时,转不过来时,将返回NaN。
举例:将var a = “abc”; 转成数值时,转不过去,就会返回NaN值。
2、字符型数据(String)
用单引号或双引号,引起来的一个字符串。
Var a = ‘abc’;
Var a = “你好”; //JS中每行语句写完后,以“;”号结束,分号不是必须的,但建议大家写
Var a = “120”; //也是字符串
如果在双引号内再套双引号时,内层的双引号,应该使用转义字符 \”来代表双引号。
如果在单引号内再套单引号时,内层的单引号,应该使用转义字符 \’来代表单引号。
转义字符的作用:当浏览器遇到“\”符号时,会将其后的字符进行特殊处理。
var a = "中国\"浙江\"杭州";
document.write(a);
3、布尔型(Boolean)
布尔型数据只有两个结果,真或假,是或否;
布尔型数据只有两个值:true或false
Var isMarried = true; //婚否只有两个可能:已婚、未婚
Var sex = true; //性别只有两个结果:男、女
Var isRead = false; //邮箱读取状态:已读、未读
4、未定义型(undefined)
当一个变量定义了,但没有赋值,会返回undefined,它的值只有一个“undefined”
<script type="text/javascript">
var a = "中国\"浙江\"杭州";
var b;
var isRead = true;
document.write(typeof(isRead)); // 结果为:Boolean
</script>
5、null(空型)
当一个对象不存在时,将返回null,null的数据类型的值只有一个null。
window.prompt()弹出一个输入对话框
var str = window.prompt("请输入你的分数");
document.write(typeof(str)+","+str);
判断一个变量的函数:typeof()
语法格式:string typeof(var)
说明:
string代表的是它的值是什么类型的;
var代表测试的变量名称;
返回值有六个:“string”、“number”、“boolean”、“undefined”、“object”、“function”
有哪些数据返回的是“object”:array、object、null
举例:
var a = “abc”;
document.write( typeof(a) ); //返回”string”
变量类型的转换
一、自动数据类型转换
(1)其它类型转成数值
//第一种:其它类型自动转成数值
var a ="abc"; //NaN
var a = true; //1
var a = false; //0
var a ="100px"; //NaN
var a ="100"; //100
var a = undefined; // NaN
var a = null; // 0
//强制转换的函数Number()
a = Number(a);
var result = "类型是:"+typeof(a)+",值是:"+a;
document.write(result);
(2)其它类型转成布尔型
//第二种:其它类型自动转成布尔型
var a ="abc"; //true
var a = 0; //false
var a = -100; //true
var a =""; //false
var a ="100"; //true
var a = undefined; // false
var a = null; //false
//强制转换的函数Boolean()
a = Boolean(a);
var result = "类型是:"+typeof(a)+",值是:"+a;
document.write(result);
(3)其它类型转成字符串
//第三种:其它类型自动转成字符型
var a = 0; // "0"
var a = true; // "true"
var a = false; // "false"
var a = NaN; // "NaN"
var a = 100; // "100"
var a = undefined; // "undefined"
var a = null; //"null"
//强制转换的函数String()
a = String(a);
var result = "类型是:"+typeof(a)+",值是:"+a;
document.write(result);
二、强制数据类型转换
Number()强制将其它类型转成数值型;
Boolean()强制将其它类型转成布尔型;
String()强制将其它类型转成字符型;
三、从字符串中提取数值
parseInt(str):在字符串中,从左到右提取整数(整形),如遇到非数字数据,则停止提取;
例如:将一个<div>的宽度增加200px
var width = "100px";
width= parseInt(width); //结果为100
width += 200; // 300
width = width + “px”; //结果为 “300px”
parseFloat(str):在字符串中,从左到右提取浮点数(小数),如遇到非数字数据,则停止提取;
parseFloat(“.3px”); // 0.3
paseFloat(“abc200”); // NaN
parseFloat(“123.09px”); // 123.09
注意:如果要提取的字符串的第一个字符是非数字的,则直接返回NaN。
算术运算符、赋值运算符、字符串运算符
3、字符串运算符:+和+=
“+”就是用来连接前后两个字符串,或者连接变量;
“+”如果它的前后有一个是字符串,则“+”的功能就是“连接”字符串功能;
“+”如果它的前后都是数值时,则“+”的功能就是“加法”运算的功能;
Var a = 100;
Var b = “100”;
Var c = a + b; //结果是:“100100”
Var d = 200;
Var result = a + d; //结果为:300
“+=”如果它的前后有一个是字符串,则“+=”的功能就是“连接”功能;
“+=”如果它的前后都是数值,则“+=”的功能就是“加法”运算功能;
(1)加法运算
var a = 10;
a += 100; //展开后是: a = a + 100
document.write(a); //结果是:110
(2)字符串连接功能
Var a = 100;
a += “中国广州”; //展开后:a = a + “中国广州”
document.write(a ); //结果是:“ 100 中国广州”
4、三元运算符
语法格式:条件表达式 ? 结果1 : 结果2
说明:当条件表达式为true时,执行“结果1”的代码;如果条件表达式为false时,执行“结果2”代码。
举例:
Var isMarried = false;
isMarried ? “已婚” : “未婚”; //如果isMarried的值为true,则输出“已婚”,否则,输出“未婚”
document.write(isMarried);
总结:
变量定义:使用关键字var来定义变量。例如:var 变量名称 = 变量的值
变量的命名:
(1) 可以是a-z、A-Z、0-9、_字符;
(2) 不能以数字开头,可以字母或下划线开头;
(3) 不能用系统关键字作为变量的名称;比如:typeof 、var 、switch、for等
变量的类型:(1)基本数据类型:数值型、字符型、布尔型、undefined、null
(2)复合数据类型:数组、对象、函数
数值型数据类型:包含整型和浮点型,还有一个NaN。
字符型数据类型:常用的转义字符:\”、\’等
布尔型数据类型:有两个值true和false;
未定义型数据类型:变量定义了,但没有赋值,会返回undefined,这个类型只有一个值undefined
空对象型:当进行其它操作时,返回的对象为空时,将返回一个null的类型数据,只有一个值null
变量是存在内存中,但变量是有生存周期,当网页执行完毕后,变量的就消失了。
JS数据类型转换
(1)数据类型都是自动转换,并不需要强制转换函数;
(2)强制转换函数,只起一个测试或检验的作用;