11 .JavaScript 数据类型
JavaScript中的数据类型有2大类:值类型(基本类型)和引用数据类型
值类型(基本类型):字符串(string)、数字(number)、布尔(Boolean)、对空(Null)、
未定义(Undefined)、Symbol【ES6】。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。
1.字符串(String)
字符串---使用引号包围起来的一串字符,就是字符串
"hello" 'zhangsan'
双引号中的双引号用单引号代替
"zhagsan说:'hello'"
将字符串数据赋值给变量,那么这个变量就是字符串(String)类型
function testString(){
//字符串---使用引号包围起来的一串字符,就是字符串
//"hello" 'zhangsan'
//双引号中的双引号用单引号代替
//"zhagsan说:'hello'"
//将字符串数据赋值给变量,那么这个变量就是字符串(String)类型
//typeOF--运算符【判断数据类型】
var str1; //[undefined]
str1="hello"; //string
var str2='zhangsan'; //string
//var str3="zhangsan说"hello"";//错误:Unexpected identifier
var str3="zhangsan说'hello'";//string
//alert(typeof str3);
}
2.数字(number)
数字(number)包括整数和小数
将字整数或小数的数据赋值给变量,那么这个变量就是数字(number)类型
通过科学(指数)计数法来书写表示一个极大的数字/极小的数字
小数计算并非100%准确 10/3=3.33333335
function testNumber(){
//数字(number)包括整数和小数
//将字整数或小数的数据赋值给变量,那么这个变量就是数字(number)类型
//通过科学(指数)计数法来书写表示一个极大的数字/极小的数字
//小数计算并非100%准确 10/3=3.33333335
var num1=100; //number
var num2=23.7; //number
var num3=123e5; //12300000 number
var num4=10/3; // 3.3333333333333335 number
alert(typeof num4);
}
3.布尔(逻辑)只能有两个值:true 或 false
将字true 或 false赋值给变量,那么这个变量就是布尔(逻辑)类型
function testBoolean(){
//将true或false赋值给变量,那么这个变量就是布尔(逻辑)类型
var boo1=true; //boolean
var boo2=false; //boolean
alert(typeof boo2);
}
4.null 空类型
null 表示 "什么都没有"[空]
当我们不知道变量将来会是什么数据类型的时候,可以使用null类型来代替。
使用typeof 判断得到null的数据类型是object。
function testNull(){
//null 表示"什么都没有"[空]
//当我们不知道变量将来会是什么数据类型的时候,可以使用null类型来代替.
//使用typeof 判断得到null的数据类型是object.
var test1=null; //object
var test2=test1+"hello"; //string
alert(typeof test2);
}
5.undefined --- 定义的变量没有赋予个任何数据值,此时它的数据类型就是undefined
function testundefined(){
var test; //undefined
alert(typeof test);
}
null 与 undefined 的异同点是什么呢?
共同点:都是值类型
undefined——表示变量声明过但并未赋过值,它是所有未赋值变量默认值。
null——表示一个变量将来可能指向一个对象【string,number,boolean,....】
一般用于主动释放指向对象的引用
12.对象类型
对象由花括号表示
对象中有属性,以键【属性名称】值【数据值】对形式 (name : value) 来定义
name:zhangsan --【键值对】
name-属性名称[键] zhangsan-数据值[值]
属性之间使用","分隔,在一个对象中可以有多个属性【键值对】
属性的具体数据值在表示的时候,字符串使用""包围
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>对象类型</title>
<script>
function testObject(){
//对象由花括号表示
//对象中有属性,以键【属性名称】值【数据值】对形式 (name : value) 来定义
//name:zhangsan --【键值对】
//name-属性名称[键] zhangsan-数据值[值]
//属性之间使用","分隔,在一个对象中可以有多个属性【键值对】
//属性的具体数据值在表示的时候,字符串使用""包围
var student={id:1001,name:"zhangsan",age:25,classname:"java班"};//object
//alert(typeof student);
//对象属性有两种调用方式
//1.对象名称.属性名称;
//alert(student.name); //zhangsan
//2.对象名称["属性名称"]--不推荐
alert(student["classname"]);//java班
}
</script>
</head>
<body>
<input type="button" value="测试对象类型" οnclick="testObject();"/>
</body>
</html>
对象属性有两种调用方式:
1.对象名称.属性名称;
例如:student.name
2.对象名称["属性名称"]
例如:student["classname"]
13.数组类型---"[ ]"由一组数据组合在一起形成的新类型就是数组.
由一组数据组合在一起形成的新类型就是数组
数组的创建方式:
1.先创建后赋值
创建:var arr1=new Array();
赋值[需要数组下标]
下标就是具体数据值在数组中的位置,从0开始
arr1[0]="hello";
arr1[1]=123;
arr1[2]=true;
2.创建+赋值
var arr2=new Array("zhangsan",23,"西安");
var arr2=["zhangsan",23,"西安"];
使用typeof运算符得到的数组类型为object。
获取数组中的数据值:数组名称[下标]
alert(arr2[0]);//zhangsan
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>数组类型</title>
<script>
function testArray(){
//由一组数据组合在一起形成的新类型就是数组
//数组的创建方式:
//1.先创建后赋值
var arr1=new Array();//object
//赋值[需要数组下标]
//下标就是具体数据值在数组中的位置,从0开始
arr1[0]="hello";
arr1[1]=123;
arr1[2]=true;
//2.创建+赋值
var arr2=new Array("zhangsan",23,"西安");//object
var arr2=["zhangsan",23,"西安"];//object
//获取数组中的数据值:数组名称[下标]
alert(arr2[0]); //zhangsan
}
</script>
</head>
<body>
<input type="button" value="测试数组类型" οnclick="testArray();">
</body>
</html>
14.函数类型
1.function是函数标志
2.函数的格式
function 函数名称([参数]){函数体}
function定义函数的关键字
函数名称--1.可以使用字母,数字,$,_组成,数字不能开头
2.变量名称对大小写敏感
3.不要用中文
4.一般都是动词
([参数列表])--参数是一个变量/多个变量,没有用var声明,多个变量中间“,”隔开。
--参数的作用:接收函数之外的数据进入本函数中进行运算。【找外援】
{函数体}---具体功能实现代码
3.某一个具体功能实现代码的集合。【代码的重复利用】
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>函数类型</title>
<script>
/*
1.function是函数标志
2.函数的格式
function 函数名称([参数]){函数体}
function定义函数的关键字
函数名称--1.可以使用字母,数字,$,_组成,数字不能开头
2.变量名称对大小写敏感
3.不要用中文
4.一般都是动词
([参数列表])--参数是一个变量/多个变量,没有用var声明,多个变量中间“,”隔开。
--参数的作用:接收函数之外的数据进入本函数中进行运算。【找外援】
{函数体}--具体功能实现代码
3.某一个具体功能实现代码的集合。【代码的重复利用】
*/
function fun1(){
alert("有名称的函数,函数名称fun1");
}
function fun2(str){
alert("有名称的函数,函数名称fun2,有一个参数str="+str);
}
function fun3(str,num){
alert("有名称的函数,函数名称fun2,有两个参数str="+str
+"第二个参数num=="+num);
}
//有返回值的函数[return 函数体的最后一句话]
function my1(){
alert("有名的函数,函数名称my1");
return "hello";
}
function my2(num1,num2){
alert("有名的函数,函数名称my2,有两个参数");
return num1+num2;
}
function test1(){
//调用有参数的有名函数,1看【有没有,有几个】,2传
//有名称的函数
//fun1();
//fun2("hello");//有参数的函数
//fun3("heelo",100);//有参数的函数
//调用有返回值的有名函数:有return,就变量收。
//var res1=my1();
var res2= my2(100,200)
alert(res2);
//函数的调用:1.要什么,给什么
// 2.给什么,收什么
}
/*
匿名函数
onload--页面初始化事件【当页面被打开的时间触发动作】
window.οnlοad=function(){
alert("匿名函数");
}
*/
</script>
</head>
<body>
<input type="button" value="测试函数" οnclick="test1();">
</body>
</html>