JavaScript数据类型
JavaScript的数据类型(2种)
原始类型和引用类型他们的储存方式不一样,原始类型的是储存在栈里面的,
引用类型是储存在堆里面的。
1、简单数据类型(原始类型)
a、字符串(string)
用引号括起来的就是字符串,包括单双引号。
注意:双引号不能嵌套双引号,单引号也不可以嵌套单引号,但是可以交叉嵌套。
b、数值类型(Number)
var num = 123;
var num = 12.34;
也可以用其他进制表示,比如16进制等
有三个特殊值
+Infinity,正无穷大
-Infinity,负无穷大
NaN:表示不是一个数值,但是他的类型是数值类型。
isNaN()方法用于检查其参数的数值类型是否为非数值类型。
c、布尔值(boolean)
只有两个值:true(真),false(假)
d、undefiend,表示变量未赋值的默认值,也可以代表空。
D、null,空,表示对空对象的引用。
通常可以用null来清空数据。
2、复杂数据类型(引用类型)
a、对象(object),是属性和方法的集合。
判断数据类型,可以通过typeof()方法来得到。
<style type="text/css">
.test{
width: 200px;
height: 200px;
background: skyblue;
}
</style>
<div class="web">
<div class="test" id="test">点击我改变颜色</div>
</div>
<script type="text/javascript">
var onColor = true;
//一个等号是赋值,两个等号是判断。
document.getElementById("test").onclick = function(){
if(onColor == true){
document.getElementById("test").style.background = "pink";
// onColor = false;
}else{
document.getElementById("test").style.background = "skyblue";
// onColor = true;
}
//!表示取反,即是真取反后为假
onColor = !onColor;
}
var str = "";
var str1 = ' ';
console.log(str1,typeof(str1));
console.log(str,typeof(str)); //string
var str2 = "welcome to 'guangzhou'";
var str3 = 'welcome to "guangzhou"';
console.log(str2);
console.log(str3);
var num =123;
console.log(num,typeof(num));//number
var num1 = "123";
console.log(num1,typeof(num1));//string
var num2 = 789;
//+ 代表加法运算
console.log(num+num2);//912
//字符串拼接,加号(+)就是字符串拼接符
console.log(num+num1);//123123
var person = "英雄";
console.log(num1+person+num+num2);//直接字符串拼接
console.log(num+num2+num1+person);//先数值相加再拼接字符串
document.write("我是一个"+person+"!");
var good = "好";
var friend = "女朋友";
var go = "嘿嘿嘿";
//document.write是识别标签
document.write("今天天气真好,我要跟女朋友去约会!")
document.write("今天天气真"+good+",<br />我要跟"+friend+"去"+go+"!")
var bool = true;
console.log(typeof(bool));//boolean
var bool1 = "true";
console.log(typeof(bool1));//引号引起了的都是字符串 string
var age = undefined;
console.log(typeof(age));
var userName;
console.log(userName);
var sex = null;
console.log(typeof(sex));//object
console.log(sex);
//两个等于号表示判断等于,只判断值
console.log(undefined == null);//true
//三个等于号表示判断全等于,即判断数值判断类型
console.log(undefined === null);//false
console.log(123 === "123");//false,数据类型不一样。
console.log(123 == "123");//true
/*
*十六进制由0·9和A~F表示,A~F就是代表数值10~15
* 通常开头为0x代表的是十六进制。
*
* */
var num = 0x123;
//十六进制转化为10进制:1*16^2+2*16^1+3*16^0=291
console.log(typeof(num),num);//number 291
var num1 = 0x678f;
//转换为10进制:6*16^3+7*16^2+8*16^1+15*16^0
//8进制,逢8进一,通常以0开头。
//十进制的8用八进制来代表
var num2 = 010;
console.log(num2);//8
var num6 = "文字";
//isNaN() 函数用于检查其参数是否是非数字值。
//数字的字符串类型的变量用于判断的时候会隐式转换为数值类型。
console.log(isNaN(num6));//true
var num3 = +Infinity;//正无穷大
var num4 = -Infinity;//负无穷大
console.log(num3,num4);
var unm5 = NaN;
console.log(typeof(unm5));//number
var obj = {
name:"html",
age:"18"
}
console.log(typeof(obj));//object
var obj1 = obj;
console.log(obj,obj1);
var num = 123;
var num1 = num;
console.log(num,num1);
num1 = 789;
console.log(num);//123
obj1.age = "28";
console.log(obj);
</script>
数据类型:
简单数据类型
1、字符串(string)
2、数值(number)
3、布尔值(Boolean)
4、undefined
在定义变量后未赋值的时候,JavaScript会自动给变量赋值为undefined
5.null
JavaScript有垃圾自动回收机制,在变量不需要使用的时候,系统会自动把此变量赋值为null(即清空改变量)
复杂数据类型
1、对象(object)属性和方法的集合。
语法:键值对写法,即:"键名":"键值"。
我们可以通过.(点来操作符)来访问对象上的属性或者方法
怎么来调用对象里面的方法
通过对象的方法名后面加个小括号来执行这个方法。
return用来定义函数的返回值。
2、数组(array),也是数据的集合
数组的下标是从0开始也就是***,数组长度(length)的计算是从1开始计算的。
怎么获取数组里面的数据?
获取数组长度
console.log(arr.length);
var str = “123”;
字符串也能获取其字符长度
onsole.log(str.length,str[1]);
可以通过数组名加中括号,括号里面填下标值。
3、function(函数),具有一定功能的代码块。
语法:通过关键字function来定义,如下:
函数名和参数是可选的。
function 函数名(参数){
书写功能代码区域
}
return用来定义函数的返回值,以及结束函数的执行。
定义了一个函数,就相当于生产了一台机器。
function myFun(){
alter弹窗会阻止js代码的运行
alert(“hello world!”);
return “你好”;
}
//执行函数,相当于按下机器的运作开关。
console.log(myFun());
匿名函数
不能直接定义匿名函数,需要有事件触发的时候才可以,或者是赋值给一个变量。
匿名函数只能在函数定义的后面进行调用。
具名函数无论在哪里都可以调用。
fun();调用会报错
var fun = function(){
console.log(“我是一个匿名函数”);
}
fun();
函数的参数
可以又多个,参数之间用逗号隔开
定义函数时写的参数我们称为形参
当我们要调用的函数时传入的参数称为实参
function testFun(username,age,sex){//形参
return “你好,我是”+username+",今年"+age+“岁,性别”+sex+"";
}
console.log(testFun(“小白”,10,“男”));//实参
var uName = “刘”;
document.write(testFun(uName,10,“男”));
var obj ={
"name" :"小芳",//前面的是键名//键值
"age":"18",
"skill":function(){//方法
console.log("做菜");
// return "我是一个方法"
return "obj" //return返回
}
}
console.log(obj.age,obj.name);
console.log(obj.skill);//访问skill方法
console.log(obj.skill());//执行skill方法
上一篇: 解决gitbook报错问题
下一篇: jdk1.5的新特性