首先javascript是一种具有面向对象能力的,解释型程序设计语言。
js对大小写敏感,一定要采取一致的字符大小写形式,在js中的结束分号(;)是可选的,为了避免JS语句错误,我们还是要注意添加,养成良好的编写习惯。
下面看看数据类型和值。
JS有7种数据类型:字符串、数字、布尔、数组、对象、Null、Undefined
字符串类型:由Unicode字符,数字,标点符号组成的序列,可以为多个字符,也可以为0个字符。
1 <script> 2 // var用于声明一个变量 3 var string1 = ""; //空字符串 string类型 4 var string2 = "abcd13222";
var answer=‘He is called "Bill"‘; //单双引号的包裹 ,这里字符串会保留双引号,显示为
He is called "Bill"
5 </script>
数字类型:在JS中不区分整型和浮点型,所有的数字均有浮点型表示。
1 var n1 = 123; //整型 2 var n2 = 0xff; //十六进制 3 var n3=3.14 //浮点型
var n4=0/0; //这是一个非数字的特殊值,NAN
布尔型:布尔类型的直接量就只有true 和false.
布尔类型常用于JS的控制结构。比如在if/else语句中,true执行一个动作,false执行一个动作。
1 var a=7; 2 if (a == 3) { 这里a==3 就是一个布尔类型 ,显然为false 3 alert("true") 4 } else { 5 alert("false") 6 }
这里需要介绍一下布尔类型的转换:
如果一个布尔类型在数值环境中,true转换为数字1,而FALSE 转换为0.
如果在字符串环境中,true转换为字符串”true“,而FALSE转换为”false“。
如果他们转换为布尔类型会怎么样呢?
数字转换为布尔,如果是0或者NAN,则转换为false,其他的数字则转换为true。
字符串转换为布尔,如果为空字符串则会转换为false,其他则转换为true。
空值和未定义的值都会转为false。
var boolean=Boolean(x);//显示的转换 。
数组:是一种数值集合,数组每个值都有一个下标[],数组可以存放任何一种JS的数据类型。
数组的创建:
1 var arr1 = new Array(); //构造函数Array()创建数组,然后定义每个数组内的元素 2 arr1[0] = "js"; 3 arr1[1] = 123; 4 arr1[2] = true; 5 arr1[3] = { x: 1, y: 2 }; 6 7 var arr2 = new Array("js", 123, true, { x: 1, y: 2 });//同样是构造函数创建,直接初始化数组,给定每个元素值 8 9 var arr3 = new Array(10); //定义了长度为10的数组 ,但为定义内容 10 11 var arr4 = ["js", 123, true, { x: 1, y: 2 }]; //直接数组给直接量创建 []
对象是已命名的数据的集合。已命名的数据作为对象的属性来引用。
创建对象:
1 var obj1 = new Object(); //通过构造函数Object() 创建 2 obj1.x = 1; //自己可以随意定义属性类型及内容 3 obj1.y = "haha"; 4 obj1.z = function () { alert("zzzzz") }; 5 6 7 var obj2 = new Object({ x: 1, y: "haha" }); //直接初始化对象 8 9 var obj3 = { x: 1, y: "haha" }; //对象直接量 10
null类型 是一种特殊值,表示无值。
null在布尔环境中转换为false,在数字环境中转换为0,字符串环境中则转换为”null“.
undefined 特殊值
当你使用一个未声明的变量时,或者已经声明了,但没有赋值的变量,或者是一个不存在的对象属性,就返回undefined.,但不同于null.
用==是无法判断出undefined ,如果要完全区别,需要使用===运算符,或者typeof()运算符
1 <script> 2 var person; 3 var car="Volvo"; 4 document.write(person + "<br />"); //输出undefined 5 document.write(car + "<br />"); //输出Volvo 6 var car=null 7 document.write(car + "<br />"); //输出null 8 </script>