JavaScript基本概念
我会根据我在《JavaScript高级程序设计》中学到的一些比较重要和基础的知识点笔记记下来,这些只是属于基础性和理论性的知识,还需要我去实践,从实践里面学到更多的知识。
基本概念
JavaScript有三个组成部分:ESMAScript(关键部分)、DOM(文档对象模型)、BOM(浏览器对象模型)
DOCTYPE作用:告诉浏览器用何种文档规范解释该文档。
有两种模式:混杂模式和标准模式,如果没有前面的DOCTYPE声明就是用混杂模式。
区分大小写,标识符的写法:采用驼峰大小写格式,第一个单词小写,剩下的每个单词的首字母大写,例如:myCare。
变量:用操作符var定义的变量将成为定义该变量的作用域中的局部变量。没有用var声明变量就是全局变量!
数据类型:ECMAScript有五种简单数据类型:Undefined、Null、Boolean、Number、String
,一种复杂数据类型:Object。
对未初始化和未声明的变量执行typeof操作符都返回了undefined值;typeof不是函数,只是一个操作符
1 | var message |
如果定义的变量用来保存对象,最好将该变量初始化为null
undefined类型
undefined类型只有一个值,即特殊的undefined
。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。
一般而言,不存在需要显式设置一个变量为undefined。字面值undefined的主要目的是用于比较。
对未初始化和未声明的变量执行typeof操作符都返回了undefined值。
null类型
null类型是第二个只有一个值的数据类型,这个特殊的值是null
。
如果定义的变量准备在将来用来保存对象,那么最好将该变量初始化为null而不是其他值。
位于undefined和null之间的相等操作符(==)总是返回true。
Boolean类型
该类型只有两个字面值:true和false
。这两个值与数字不一样,因此true不一定等于1,而false也不一定等于0。
所有类型的值都有与这两个Boolean值等价的值。要将一个值转换为其对应的Boolean值,可以次调用转型函数Boolean()
。
下表给出了各种数据类型及其对应的转换规则:
1 | 数据类型 转换为true的值 转换为false的值 |
Number类型
ECMAScript没有为整数和浮点数值分别定义不同的数据类型,Number类型可用于表示所有数值。
不要测试某个特定的浮点数值!0.1加0.2不等于0.3,而是0.300000000000004
NaN:任何涉及NaN的操作都会返回NaN NaN 与任何数值都不相等
数值转换:有三个函数可以把非数值转换为数值:Number()、parseInt()、parseFloat()
。第一个函数即转型函数可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值。
Number()函数的转换规则如下:
- 如果是Boolean值,true和法拉瑟将分别转换为1和0;
- 如果是数字值,则只是简单的传入和返回
如果是null值,返回0
如果是undefined值,返回NaN
如果是字符串: 1:只包含数字,则将其转换为十进制数值,“1”为1,“123”为123; 2:如果字符串包含有效的浮点格式,会转换成为相对应的浮点数值(前导的零被忽略); 3:如果字符串中包含有效的十六进制格式,就转换为相同大小的十进制整数值; 4:如果字符串是空的(不包含任何字符),则转换为0;%:其余格式为NaN
parseInt:例子:
1 | var num1=parseInt(“123blue”);//转换为1234 |
例如:
1 | var num1=parseInt(“AF”,16);//175 |
String类型
字符串可以有双引号或单引号表示。
任何字符串的长度都可以通过访问其lengh属性取得,例如:alert(text.length)
特点:ECMAScript中的字符是不可变的,一旦创建,他们的值就不能改变,要改变某个变量保存的字符串就要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。
转换为字符串:
1 | (1)toString(),例如:var found=true; var foundAsString=found.String();//字符串“true”;数值、布尔值、对象和字符串值都有toString()方法,但null和undefined值没有这个方法。 |
多数情况下,该方法没有传递参数,但是在调用数值的该方法时,可以传递一个参数:输出数值的基数。例如:
1 | var num=10; |
(2)另一种转型函数是:String(),这个函数能够将任何类型的值转换为字符串。规则如下:
1 | 如果有toString()方法,则调用该方法(无参数)并返回相应的值;如果值是null,则返回“null”;如果只是undefined,则返回“undefined”。即该函数转换了null和undefined的字面量。 |
Object类型
ECMAScript中的对象就是一组数据和功能的集合。创建方法:var o=new Object()
;
Obeject()的每个实例都有如下属性和方法:
1 | constructor:保存着用于创建当前对象的函数。构造函数。 |