简单过一下javascript的基本概念,后续的文章中会做详细叙述。
1、javascript程序均使用Unicode字符集编写。
Unicode编码是16位的,可以表示地球上任何一种书面语言。
2、javascript语言是大小写敏感的,如helloworld和HelloWorld被认为是两个变量名。
3、javascript并不以分号作为分隔语句的标识。如果语句放在同一行是需要分号的,而如果分别放置在不同的行中,就可以省略分号。注意:省略分号不是一个好的编程习惯,应该习惯于使用分号。
4、直接量在javascript中指常量。
5、javascript的标识符是以字母、下划线、美元符号开头,包含字母、数字、下划线、美元符号的字符串。
6、javascript的数据类型:
(1) 基本类型:数字、字符串、布尔值、null、undefined
(2) 复合数据类型:对象、数组、函数、javascript专有对象(Date、RegExp等等)
7、基本数据类型之数字
特殊数值有Infinity(正无穷大)、-Infinity(负无穷大)、NaN(非数字)、Number.MAX_VALUE(最大数字)、Number.MIN_VALUE(最小数字)。isFinite()函数可以检测是否是NaN/Infinity/-Infinity,isNaN()函数检测是否NaN。
8、基本数据类型之字符串
字符串直接量是由单引号或双引号包含起来的字符序列。由单引号定界的字符串中可以包含双引号,反之亦然。如果字符串中腰包含英文缩写和所有格,如can't,需要使用反斜线\进行转义。
字符串中加入\n可使字符串换行。
javascript中没有字符的概念,要表示单个字符必须使用长度为1的字符串。
字符串的连接:msg = "hello" + " world";
字符串的长度:msg.length
字符串取某个字符:msg.charAt(s.length - 1)
字符串取子串:msg.substring(1, 4);
字符串取位置:msg.indexOf('s');
9、数字<->字符串 相互转换
数字-> 字符串 :
var n = 100;
var s = n + " ducks";
或
var n = 100;
var s = n.toString(2);
toString()中的参数为几进制。可以是2到36
字符串-> 数字:
var num = str - 0;
parseInt("2 blind mice");
parseFloat("3.24 blind mice");
parseInt("3", 2) //按进制位数转换
parseInt("eleven"); //无法转换,返回NaN
parseFloat("$34.4"); //无法转换,返回NaN
10、基本数据类型之布尔值
只有直接量true和false两个值
11、布尔值的转换
转换为字符串:"true"和"false"
转换为数字: 1和0
12、复合数据类型之函数
不仅可以被定义和调用,更大的特点在于它是一个数据类型,可以被存储在变量、数组、对象中,可以作为参数传递给其他函数。
函数直接量是指隐式函数定义,即看起来像个函数定义,只不过没有函数名,如:
var square = function(x) { return x * x}
13、复合数据类型之对象
对象的属性:image.width、document.myform.button等等,可以是数组、函数、其他对象等任何类型。
创建对象:
var obj = new Object();
var pattern = new RegExp("\\sjava\\s", "i");
定义属性:
var point = new Object();
point.x = 3.3
point.y = 3.2
对象直接量:
var point = { x: 3.3 , y: 3.2};
14、对象的转换
转换为布尔值:为true。
转换为字符串:调用对象的toString()方法,返回字符串。
转换为数字:调用对象的valueOf()方法,若返回基本数据类型值就被使用。否则先用toString()把对象转换为字符串,再试图转换为数字。
15、复合数据类型之数组
创建数组(可以赋予任何类型的值):
var arr = new Array();
arr[0] = 2.3;
arr[1] = "hello";
arr[2] = {x:1, y:3};
数组直接量:
var arr = [2.3, "hello", {x:1, y:3}];
16、null
表示一个变量的值不是有效地对象、数组、数字、字符串、布尔。
17、undefined
表示使用了未声明的变量,或使用了已经声明却没有赋值的变量,或使用了一个并不存在的对象属性。
使用===运算符或typeof运算符可以区分null和undefined。
18、Date对象、正则表达式、Error对象
19、基本数据类型的包装
存在Number、String和Boolean三种对象,它们是对基本数据类型的包装。按如下方式进行转换:
var s = "hello world";
var S = new String("Hello World");
20、传值与传址
数字、布尔值是传值数据类型。
对象、数组、函数是引用数据类型。
字符串的复制、传递是传值数据操作,比较是传地址数据操作。