这篇笔记简单总结了javascript中的一些基本概念,作为后面学习的基础。
语法
区分大小写
Javascript中的一切都是区分大小写的。
标识符
标识符是指变量、函数、属性或者函数参数的名字。它以字母、下划线或美元符号开头,后面跟字母、下划线、美元符号或者数字。通常建议采用驼峰大小写的格式。
注释
1.单行注释
//code...
2.块级注释
/*
code...
*/
语句
在javascript中,语句是一封号结尾的。虽然封号不是必须的,但建议每条语句的结束都不要省略封号。
变量
javascript中的变量是松散型的,可以用来存储任何值。但是不建议修改变量所保存的类型值。即原本一个变量是数值型的,比建议将其修改存储字符串。
用var声明的变量是局部变量。
数据类型
基本数据类型:Undefined、Null、Boolean、Number和String。
复杂数据类型:Object
使用typeOf操作可检测给定变量的数据类型。
Undefined类型
这个类型的值只有一个,即undefined。
声明一个变量但为对其进行初始化时,该变量的值就是undefined。
注意:对为初始化和未声明的变量执行typeOf操作,都将返回undefined。但是不能对未声明的变量进行任何操作,会报错。
Null类型
这个类型的值也只有一个,即null.
null表示一个空对象的指针。所以,对null执行typeOf操作,将返回"object"。
当一个变量有意要用于保存对象时,最好将该变量初始化为null.
Boolean类型
该类型有两个值:true和false
其他类型都可以相应转换为Boolean类型。
Number类型
十进制:如10;
八进制:第一位是0,后面跟0~7的数字序列;
十六进制:以0x开头,后面跟0~9及a~f(A~F)的十六进制数;
浮点数:包含一个小数点,且小数点后面必须至少有一位数字。如果小数点后面没有数字或者数字为0,那么会被自动转换为整数;
科学计数法:前面是一个数值,中间是一个e(或E),最后是10的幂中的指数。例如:3e10,它表示3乘以10的10次方;3e-8,它表示3乘以10的-8次方。
isFinite()函数可以用来检查传入的参数是否是有穷的,如果是则返回true。
NaN
NaN表示一个本来要返回数值的操作却没有返回数值的情况。
任何涉及NaN的操作都会返回NaN;
NaN与任何值都不相等,包括其自身。
isNaN()函数可用来检测传入的参数是否“不是数值”。
object类型
对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。
每个对象都有的属性和方法:
1.constructor:表示对象的构造函数,即用于创建当前对象的函数。
2.hasOwnProperty(propertyName):用于检查传入的参数是否是当前对象实例的属性。
3.isPrototypeOf(object):用于检测传入的对象是否是对象的原型。
4.propertyIsEnumerable(propertyName):用于检查传入的参数是否能用for-in语句来枚举。
5.toLocaleString()
6.toString()
7.valueOf()
操作符
一元操作符
1.递增递减
前置性递增递减:变量的值是在语句被求值前改变的;
后置型递增递减:变量的值是在语句被求值后改变的。
不管是前置性还是后置型的递增递减操作,对任何值都适用。
2.一元加和一元减
一元加放在数值面前不会产生任何影响。放在非数值前,会像Number()一样对操作数进行转换。
一元减放在数值前将返回操作数的负数。放在非数值前,将会遵循同一元加一样的规则,然后再返回其负数。
位操作符
无符号整数:32位都用来表示整数的值;
有符号整数:第32位用来表示符号位,其中1表示负数、0表示正数。其余31位用来表示整数的值。
1.按位非(~)
返回数值的反码。实质是,其结果是操作数的负值减1.
2.按位与(&)
有两个操作数,将两个操作数每一位都对其,按照下面的规则求值:
只有当两个操作数对应位都是1时才返回1,其他任何情况都返回0.
3.按位或(|)
有两个操作数,将两个操作数每一位都对其,按照下面的规则求值:
只有当两个操作数对应位都是0时才返回0,其他任何情况都将返回1.
4.按位异或(^)
有两个操作数,将两个操作数每一位都对其,按照下面的规则求值:
只有当两个操作数不相同时才返回1,相同的情况返回0.
5.左移(<<)
将数值所有位同时向左移动指定位数,空出的位置以0填充。
左移不会影响操作数符号位。
6.有符号右移(>>)
保留符号位,其他位同时向右移动指定位数。空出的位置,填充与符号位相同的值。
7.无符号右移(>>>)
所有32位都同时向右移动指定位数。空出的位置以0填充。
布尔操作符
1.逻辑非(!)
该操作会将操作数先转换为布尔值,然后再对其求反。
对操作数使用两次逻辑非操作,将求得操作数的布尔值。
2.逻辑与(&&)
该操作是短路操作,即如果第一个操作数是false,则不会再去计算第二个操作数。
3.逻辑或(||)
该操作也是短路操作,即如果第一个操作数是true,则不会再去计算第二个操作数。
乘性操作符
乘性操作符有乘法(*)、除法(/)和求模(%)。
参与乘性计算的操作数若不是数值,后台会先使用Number()转型函数将其转换为数值,然后进行数值的乘、除、求模。
加性操作符
加性操作符有加法和减法。
加法操作中,如果有一个操作数是字符串时会有如下特性:
1.如果两个操作数都是字符串,则将两个操作数拼接起来;
2.如果只有一个操作数是字符串,则将另一个操作数转换为字符串,再将两个操作数拼接起来。
关系操作符
关系操作符有:小于(<)、大于(>)、小于等于(<=)、大于等于(>=).
在比较字符串时,是比较两个字符串中对应位置的字符编码值。
在比较数值于字符串时,字符串都会被转换为数值,然后再进行数值的比较;如果字符串不能被转换为数值,那么它会被转换为NaN,NaN与任何值比较都将返回false。
相等操作符
1.相等操作符(==)
参与相等操作的两个操作数都会先进行类型转换,然后再进行比较他们的相等性。
null和undefined是相等的。
2.全等操作符(===)
全等操作不会对操作数进行类型转换。只有当两个操作数的数据类型和值完全相等时,该操作才返回true。
null不全等于undefined。
函数
1.javascript不需要指定函数的返回值,因为它在任何时候都可以返回任何值。未指定返回值的函数将返回undefined。
2.javascript函数的参数可以用arguments对象表示。arguments对象的长度是由传入的参数的个数决定的。
3.没有传入值的命名参数的值为undefined。
4.javascript中函数没有重载。假如定义了两个名字一样的函数,则该名字属于后定义的函数。