JS基本概念
一、语法
1. 区分大小写
2. 标识符:以字母、下划线或美元符号开头,其他位置可以是字母、下划线、美元符号或数字
3. 注释://单行注释,/*多行注释*/
4. 严格模式:"use strict";
5. 语句以分号结尾
二、变量
1. JS变量是松散类型的,即每个变量仅仅是一个名称占位符。
2. 定义变量是使用var操作符,后跟变量名,如:var x;
3. 省略var操作符会创建一个全局变量。
三、数据类型
1. 5种基本数据类型:Undefined、Null、Boolean、Number和String,还有1种复杂数据类型:Object
2. 检测变量的数据类型:typeof操作符,用法为typeof 后跟变量,返回变量类型
3. Undefined类型:Undefined类型只有一个值,即undefined。已声明(定义)但未初始化(赋值)的变量会自动被赋予undefined。
4. Null类型:只有一个值null。
5. Boolean类型:有两个字面值true和false(区分大小写)。
6. Number类型:(1)表示整数和浮点数值。 (2)数值有范围,超出范围的数值会被转换成正无穷Infinity或负无穷-Infinity。 (3)另外NaN是一个特殊的数值(Not a number),这个数值用来表示一个本来要返回数值的操作数未返回数值的情况。NaN有两个特点:一是任何涉及NaN的操作都会返回NaN,二是NaN与任何值都不相等,包括NaN本身(NaN==NaN返回false)。 (4)数值转换:有3个函数可以把非数值转换为数值:Number()、parseInt()和parseFloat()
7. String类型:(1)表示由零或多个16位Unicode字符组成的字符序列,即字符串。 (4)有特殊的字符字面量,即转义序列用来表示非打印字符。 (3)字符串不可变。 (4)字符串转换:toString()
8. Object类型:(1)是一组数据和功能的集合,本质上是由一组无序的名值对组成的。 (2)通过执行new操作符后跟对量类型的名称来创建,如 var a = new Object(); (3)Object的每个实例都具有下列属性和方法:constructor、hasOwnPropery(propertyName)、isPrototypeOf(Object)、propertyIsEnumerable(propertyName)、toLocaleString()、toString()、valueOf()
四、操作符
1. 一元操作符:递增递减操作符(++、--)、一元加减操作符(+、-)
2. 位操作符:按位非(~)、按位与(&)、按位或(|)、按位异或(^)、左移(<<)、有符号右移(>>)、无符号右移(>>>)
3. 布尔操作符:逻辑非(!)、逻辑与(&&)、逻辑或(||)
4. 乘性操作符:乘法(*)、除法(/)、求模(%)
5. 加性操作符:加法(+)、减法(-)
6. 关系操作符:小于(<)、大于(>)、小于等于(<=)、大于等于(>=)
7. 相等操作符:相等(==)和不相等(!=)、全等(===)和不全等(!==)
8. 条件操作符:variable = boolean_expression ? true_value : false_value;
9. 赋值操作符:简单赋值操作符(=)、复合赋值操作符(*=、/=、%=、+=、-=、<<=、>>=、>>>=)
10. 逗号操作符:使用逗号操作符可以在一条语句中执行多个操作。
五、语句
1. if语句:if (condition) statement1 else statement2
2. do-while语句:do {statement} while (expression)
3. while语句:while (expression) statement
4. for语句:for (initialization; expression; post-loop-expression) statement
5. for-in语句:for (property in expression) statement
6. label语句:label: statement
7. break和continue语句:退出循环。break退出整个循环体,continue退出一次循环。
8. with语句:with (expression) statement;
9. switch语句:switch (expression) {case value: statement break; case value: statement break; default: statement}
六、函数
1. 基本语法:function functionName (arg0, arg1, ... , argN) {statements}
2. 调用:functionName()
3. 参数无限制,存储在arguments对象中,可通过下标获取。
4. 没有重载。