这里讲的不会太多, 因为所有的语言都是一样的, 一些基本的东西, 所以就随便写写.
变量
变量就是可变的量, 编程角度理解就是用于存储某种/某些数值的存储器. 我们可以把变量具象理解为一个盒子, 而我们给的值就是盒子里面的东西, 这个盒子在那里不动, 而我们是可以改变盒子里面的东西的.
变量的命名规则, 必须以字母, 下划线, 或者美元符号开头, 后面可以跟字母, 下划线, 美元符号和数字.
声明一个变量$variable = 0;
1 var $variable = 0;
变量的声明
使用var关键字来声明变量, 准确来说, 变量是无类型的, 变量可以被赋予任何类型的值, 同样一个变量也可以重新赋予不同类型的值(这个很逆天). 示例代码:
var number = 5;
number = "number";
这段代码是合法的.
变量名是区分大小写的. 所以variable和Variable是两个变量. 非严格模式下, 变量是可以不声明就直接使用的, 但是先声明再使用这是规范!!! 变量的值是可以被覆盖的, 也是可以被传递的. 如果仅仅声明了变量, 但是并没有赋值, 那么变量的值为undefined. JS变量的声明是可以重复的, 而且合法, 无害, 其实就是对变量的重新赋值(这在其他的语言中一般是不允许的).
所以简单总结下就是JS的变量是没有类型的, 所有的类型会在运行时进行判断, 所以可以先给变量一个数字直接量, 再给一个字符串, 再给一个数组, 这些都是合法的.
变量作用域
和其他语言基本一样, 全局变量作用于全局, 局部作用于函数内部, 但是在嵌套函数定义中有一些区别, 这里就不详细解释了, 有兴趣的百度百度
值类型
虽然变量是不区分类型的, 但是在JS中, 各种类型也是存在的, JS是部分整数值和浮点数值的. 所有的数字均用浮点数值表示, 这个就不详细解释, 知道就好.
当一个数字直接出现在JavaScript程序中, 我们称之为数字直接量, JS支持多种格式的数字直接量.
整形直接量(1, 100, 0), 浮点型直接量(3.14, 333.66, 0.345, 6.02e23, 7.77E-32).
操作符
这里就不赘述了, "=", "+", "-", "*", "/", "-=", "+=", "*=", "/=", "%", "&&", "||", "!", ">", ">=", "==", "<=", "<", "++", "--", 这些符号都支持, 同样的, 优先级, 结合性也是和C语言一样的几乎.
简单说下, "+"这个符号在数学值运算的时候是表示数学意义上的相加, 比如var i = 1 + 2;这句话的结果就是i = 3, 而在有字符串参与运算的时候, 一般会变成拼接, 比如var i = 1 + "wang", 这个表达式的结果就会是i是一个字符串, i的结果会是"1wang".
数组
数组的定义我就不讲了啊, 就是对象的有序集合, 优点是查询方便快捷, 缺点是删除插入麻烦, 这些C语言什么的都有, 这里就说说在JS中数组怎么用吧, 没有面向对象语言基础的都跪着吧.
如何创建数组
1 var array = new Array();
上面的语句就是实例化一个空数组, var array声明了一个变量, 右边赋值的是一个Array的对象, new是指为一个对象开辟空间, 这些对象语言的语法我就不介绍了...
数组的访问
数组访问和其他语言一样, 才用数组名加索引的方式, 比如var array = [1, 2, 3, 4, 5], 那么想访问第一个元素1, 就是array[0].
JS中的数组不存在数组越界访问的问题, 所以声明的数组可以直接用索引赋值, 比如数组长度为5, 如果你为索引为5的元素赋值, 那么长度自动就变为6了, 如果未赋值的索引被访问到了, 并不会出现垃圾值或者崩溃, 而是值为undefined, 未定义.
数组的赋值
1, 创建数组并赋值
1 var array = new Array(1, 2, 3, 4, 5);
2, 字面量形式赋值
1 var array = [1, 2, 3, 4, 5];
这两种的效果是相同的, 具体细节差别也不解释了, 有兴趣的可以自己百度字面量形式.
二维数组
二维数组用的不多, 其实就是数组的每一个元素又是一个数组, 代码示例:
var array = [[1, 2, 3], [1, 2, 3]];
这就是一个二行三列的数组, 想要访问数组, 需要给出两个索引, 比如a[1][2], 就是指第二数组里面的3. 也可以用矩阵的形势理解, 也就是第二行, 第三个. 学习中我感觉了解, 知道就好了, 用的时候会用就好.
二维数组的赋值一般都是二重循环, 依次赋值, 一维数组一重循环即可.
流程控制我就不讲了, if else, else if, switch啥的, 估计学js之前应该都有别的语言基础了, 我就直接跳过了.