值类型(数据类型)
算术运算符
比较运算符和逻辑运算符
条件语句
初始引用值
js语句基本规则
1 变量1.1 变量的声明
使用var关键字来声明变量
用法如:var a = 100;
1.2 变量命名规则
变量名可以包含英文字母、下划线、$、数字
变量名必须以英文字母、下划线和$其中的一个作为开头
不可以用系统的关键字、保留字作为变量名,如:int、float、var等
2 值类型(数据类型)2.1 不可改变的原始值(栈数据)
五种类型:Number, String, Boolean, undefined(未赋值), null(空值)
2.2 引用值(堆数据)
如:数组array,对象object,方法function等
2.3 原始值和引用值的声明、赋值的过程及其区别
原始值的声明、赋值过程:
引用值的声明、赋值过程:
如语句var arr = [1, 2];,首先在栈区申请一块内存空间,命名为arr,然后将数据[1, 2]放入堆区的一块空间里,再将该堆区的空间地址作为值放入栈区空间arr里。
语句var arr1 = arr;,在栈区申请一块内存空间,命名为arr1,然后将栈区空间arr里的地址拷贝到栈区空间arr1里,存放数据[1, 2]的堆区空间不发生改变。
对变量arr重新赋值:arr = [1, 2, 3],前面两步操作,使栈空间arr和栈空间arr1里存放的地址,分别都指向堆空间1010,原来堆空间1010里存放的数据为[1, 2],对变量arr进行重新赋值后,堆空间里存放的数据变为[1, 2, 3],这样就导致重新赋值之后,变量arr的值 = 变量arr1的值 = [1, 2, 3]。
3.1 加号:“+”
加号可用于数学运算,如var a = 1; a = a+1;,结果a等于2
加号也可用于字符串的连接,如var a = \'aaa\'; var b = \'bbb\'; var c = a+b;,结果c等于\'aaabbb\'
任何数据类型与字符串进行"+"运算,结果的数据类型都是字符串类型,如var a = 1; var b = \'b\'; var c = a+b;,结果c等于\'1b\',数据类型为string
3.2 其他运算符
- * / % = ( )减法运算 乘法运算 除法取商 除法取余 赋值 括号改变优先级
其中,"="的优先级最低,括号"( )"的优先级最高
3.3 特殊运算符
"++", "--", "+=", "-=", "*=", "/=", "%="
用法与其他高级语言的用法一致,这里不再进行举例。
4.1 比较运算符
"<", ">", "==", ">=", "<=", "!="
分别是小于、大于、等于、大于等于、小于等于、不等于
4.2 逻辑运算符
&& || !与 或 非
5 条件语句
5.1 if语句
if(表达式){ 语句; }5.2 if - else语句
if(表达式){ 语句; } else { 语句; }5.3 else if语句
if(表达式1){ 语句1; }else if(表达式2){ 语句2; } else { 语句3; }5.4 for循环
for(初始化表达式; 条件表达式; 更新表达式){ 语句; }5.5 while和do while
while(循环条件){ 循环体; } do{ 循环体 }while(循环条件);while和do-while最明显的区别就是do-while一开始就执行了一次循环,所以do-while语句至少会执行一次循环
5.6 switch-case
需要注意的是case语句只是标识switch语句执行的起点,一旦符合case的条件语句会一直执行后面的所有case直到结束。所以一般要在case中添加break作为语句的结束:
switch(表达式) { case n: 代码块 break; case n: 代码块 break; default: 默认代码块; }5.7 break和continue
在循环过程中,使用break语句可以直接结束循环,从而执行循环后面的语句
而使用continue语句则是结束本轮循环,继续执行下一轮循环