13年的时候就买了《JavaScript 高级程序设计 》(第3版)和Jquery的书,平时偶尔也看一两眼,没系统的看,今年定下的目标是学习web,所以打算系统的学习一下。写下JavaScript系列的博客也算是笔记,以后好复习。内容也是按照《JavaScript 高级程序设计 》(第3版)的顺序总结,今天总结javascript的一些基本概念。
1.区分大小写(这个不用解释)
2.命名规则
一般用字母、数字、下划线或美元$符号。第一个字符必须是字母、下划线或美元符号$.
3.语句
语句结尾可以省略分号,但为了让编码易读,减少错误,尽量加上分号。
4.变量
变量是松散类型,可以保存任何类型的数据。声明变量尽量用var来声明,否则变量就会变成全局变量。同时不能定义名为eval和arguments的变量,否则会导致语法错误。
5.数据类型
主要包括5种基本数据类型 :Undefined、Null、Boolean、Number 和String。还有一个复杂数据类型:Object.
1).Undefined类型
只有一个值undefined,在使用var声明变量但未对其进行初始化,则该变量的值就为undefined。即定义变量的默认值是undefined.
2).Null类型
它也只有一个值null,它表示一个空对象指针,如果变量用来保存对象,最好将变量初始化为null。这样只要坚持这个变量是否为null值就能判断变量是否被保存对象的引用。
3).Boolean类型
这个略。
4).Number类型
这里主要是有两个内容:NaN和数值转换。
1.NaN:非数值,表示要返回数值的操作数未返回数值的情况。比如X/0=NaN。
它主要有两个地方比较特殊:1.任何涉及NaN的操作都返回NaN。2.Nan与任何值(包括NaN)都不相等。那如何判断一个值是不是非数值呢?这里有一个函数isNaN,传入一个任意类型的参数,如果不能被转化为数值则返回true。
2.数值转换
主要有3个函数:Number、parseInt、parseFloat. 后两个主要是用来把字符串转数值。
Number转换规则:
如果是Boolean值,ture变1,false变0;
如果是数字,简单传入传出;
如果null,返回0;
如果是undefined,返回NaN;
如果是字符串:
1.只包含数字(包括前面带正号、负号):转为10进制数,前面的0去掉 如:"011"变为11;
2.包含有效浮点数,转为浮点数
3.有效十六进制转为同等大小的十进制
4.字符串是空,转为0
5.如果包含除上述以上格式的字符串,则转为NaN
6.如果是对象,则调用对象的valueOf,依照前面规则转换返回的值,如果转换结果为NaN,则调用对象的tostring,然后按照前面的规则转换。
5).String类型
字符串是不可变的,一但创建,值不会改变。要改变首先销毁原来的字符串,然后用新的变量填充。
字符串转换是常用的有两种方法:tostring、String.但null、undefined没有。
数值、布尔值、字符串都有tostring方法。多数情况不需要传递参数,在调用数值的tostring方法时,可以传递一个参数:输出数值的基数,默认是10进制.
6).Object类型
对象可以通过new操作符创建,可以为其添加属性和方法来自定义对象。
Object的每个实例都有以下属性和方法:
Constructor :保存着用于创建当前对象的函数。构造函数。
hasOwnProperty(propertyName) :用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。作为参数的属性名必须以字符串形式指定。
isPrototypeOf(object):用于检查传入的对象是否是另一个对象的原型。
propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句来枚举。也是要用字符串指定参数。
toLoacleString:返回对象的字符串表示。
tostring:返回对象的字符串表示。
valueof:返回对象的字符串、数值或布尔值表示。
6.typeof操作符
由于是松散类型,因此需要有一个方法检测给定变量的数据类型typeof.对一个值使用typeof操作符可能返回下列某个字符串:
"undefined" :未定义
"boolean" :布尔值
"string" :字符串
"number" :数值
"object" :对象或null
"function" :函数